home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 21 / Cream of the Crop 21 (Terry Blount) (October 1996).iso / editor / auror300.zip / FUNCTION.DOX < prev    next >
Text File  |  1996-07-17  |  381KB  |  8,809 lines

  1.  
  2.   The AML Function Reference
  3.   ──────────────────────────
  4.   This Function Reference documents all macro language Statements,
  5.   Builtin functions, and Library functions for The Aurora Macro Language
  6.   (AML). Several editor Extension functions are also documented. For a
  7.   macro language tutorial, see the Language Reference. For information
  8.   on how to install, configure, and use Aurora, see the Users Guide.
  9.  
  10.   To use the Function Reference within a macro: move the cursor to a
  11.   function name or statement keyword and press <shift f2>. You can use
  12.   <shift f2> in any document, including the Language Reference
  13.   (Language.dox) and the Function Quick Reference (Quickfun.dox). You
  14.   can also navigate through this document by moving the cursor to the
  15.   'see also' keywords and pressing <shift f2>.
  16.  
  17.   ──────────────────────────────────────────────────────────────────────
  18.   Copyright (C) 1996 by nuText Systems.  All rights reserved worldwide.
  19.   No parts of this document may be copied in part or in whole, except as
  20.   provided in the License in the accompanying documentation.
  21.   ──────────────────────────────────────────────────────────────────────
  22.  
  23.   This document is divided into three sections:
  24.  
  25.     1. Language Statements
  26.     2. Functions (builtin functions and library functions)
  27.     3. Events (builtin events)
  28.  
  29.   Topics are sorted alphabetically within each section.
  30.  
  31.   Statements are indicated by the label [Statement], library functions
  32.   are indicates by [Lib], and extension functions are indicated by
  33.   [Ext]. Builtin functions and events are not labeled. Each library
  34.   function is also labeled with the object where it is defined.
  35.  
  36.  
  37.  ┌─────────────────────────────────────────────────────────────────────┐
  38.  │ Language Statements                                                 │
  39.  └─────────────────────────────────────────────────────────────────────┘
  40.  
  41.   break                                                      [Statement]
  42.   ──────────────────────────────────────────────────────────────────────
  43.   remarks:     The 'break' statement will force an unconditional exit
  44.                from 'for', 'loop', 'repeat', and 'while' loops.
  45.  
  46.   returns:     nothing
  47.   see also:    loop, repeat, while
  48.  
  49.   example:     loop  
  50.                  keycode = getkey
  51.                  case keycode
  52.                    when <esc>           // <esc> exits the loop
  53.                      break 
  54.                    otherwise 
  55.                      say "you pressed " + (geteventname keycode)
  56.                  end 
  57.                end 
  58.  
  59.  
  60.   case                                                       [Statement]
  61.   ──────────────────────────────────────────────────────────────────────
  62.   format:      case case_expr
  63.                  when when_expr
  64.                    expressions
  65.                  when when_expr, when_expr, when_expr
  66.                    expressions
  67.                   :
  68.                  otherwise 
  69.                    expressions
  70.                end / endcase 
  71.  
  72.                The 'otherwise' clause is optional.
  73.  
  74.   remarks:     The 'case' statement evaluates 'case_expr', and then
  75.                evaluates each 'when' expression in order, until one is
  76.                found whose value is equal to the value of 'case_expr'.
  77.                If a matching 'when' expression is found, the expressions
  78.                associated with the 'when' statement are evaluated.
  79.  
  80.                Multiple 'when' expressions (separated by commas) may be
  81.                specified within a single 'when' clause.
  82.  
  83.                If no matching 'when' expressions are found, then the
  84.                'otherwise' clause (if present) is evaluated.
  85.  
  86.   returns:     The value of the last expression evaluated in the 'when'
  87.                or 'otherwise' clause.
  88.  
  89.   see also:    if, if?
  90.  
  91.   example:     case value
  92.                  when 1
  93.                    say "value is one"
  94.                  when 3, 7
  95.                    say "value is three or seven"
  96.                  when "abc" + "d"
  97.                    say "value is abcd"
  98.                  otherwise 
  99.                    say "value is " + value
  100.                end 
  101.  
  102.                value = case value
  103.                          when 1 "one"
  104.                          when 2 "two"
  105.                          otherwise "undefined"
  106.                        end 
  107.  
  108.  
  109.   constant                                                   [Statement]
  110.   ──────────────────────────────────────────────────────────────────────
  111.   format:      constant identifier = expression [, constant ...]
  112.  
  113.                constant function
  114.                  :
  115.                end / endfunction 
  116.  
  117.   remarks:     This statment defines symbolic constants or compile-time
  118.                functions. 'expression' is evaluated at compile-time
  119.                without generating any object code. The lifetime of all
  120.                constants is limited to the macro language compilation
  121.                process.
  122.  
  123.                The 'constant function' statement defines functions which
  124.                are called at compile-time to return constant values.
  125.  
  126.                Commas may be used to define multiple constants in one
  127.                constant statement. The 'const' keyword is a synonym for
  128.                'constant'.
  129.  
  130.   returns:     nothing
  131.   see also:    #exec, forward, function, include, variable
  132.  
  133.   example:     constant five = 5
  134.                constant six = 2 * 3
  135.                msgbox five * six          // displays '30'
  136.  
  137.  
  138.   databuf                                                    [Statement]
  139.   ──────────────────────────────────────────────────────────────────────
  140.   format:      databuf  buffer
  141.                  :
  142.                end / enddatabuf 
  143.  
  144.   remarks:     This statement creates a new buffer and initializes the
  145.                buffer with data or adds data to the end of an existing
  146.                buffer. 'buffer' specifies the bufferid. Each expression
  147.                listed within the databuf-end group becomes a separate
  148.                line in the buffer. At least one line is required.
  149.  
  150.                This statement is generally used to define an 'inline'
  151.                data buffer in a macro, without requiring a separate file
  152.                to be loaded.
  153.  
  154.   returns:     nothing
  155.   see also:    createbbuf, createbuf, destroybuf
  156.  
  157.   example:     databuf "abc"              // bufferid 'abc'
  158.                  "first line"             // 1st line
  159.                  x + 5 - y                // 2rd line
  160.                  y                        // 3th line
  161.                  "a string"               // 4th line
  162.                end 
  163.  
  164.  
  165.   event                                                      [Statement]
  166.   ──────────────────────────────────────────────────────────────────────
  167.   format:      event  <key or event>  (arg1 arg2 ...)
  168.                 :
  169.                end / endevent 
  170.  
  171.                The 'end' keyword is not required if this statement is
  172.                followed by another 'event', 'key' or 'function'
  173.                statement.
  174.  
  175.   remarks:     This statement defines an event handling function in the
  176.                current object with the event name: <key or event>.
  177.                Evaluation and arguments are handled in the same way as
  178.                the 'function' statement (see the 'function' statement).
  179.  
  180.                For all events generated by the editor except <char>, an
  181.                eventcode is passed as the first argument. The <char>
  182.                event handling function is passed the Ascii character
  183.                entered as the first argument, and the eventcode as the
  184.                second argument.
  185.  
  186.   returns:     nothing
  187.   see also:    arg, forward, function, key
  188.  
  189.   example:     key <ctrl c> (keycode)
  190.                  say "you pressed <ctrl c>, keycode=" + keycode
  191.                end 
  192.  
  193.  
  194.   #exec                                                      [Statement]
  195.   ──────────────────────────────────────────────────────────────────────
  196.   format:      #exec  
  197.                  :
  198.                #endexec 
  199.  
  200.   remarks:     This statement defines a section of macro code which is
  201.                executed at compile-time. No object code is generated for
  202.                any expressions contained within the #exec-#execend group.
  203.  
  204.                Any functions defined within the #exec block are
  205.                evaluated at compile time when called. Public object
  206.                variables which are assigned values within the #exec
  207.                block group are treated as constants when referenced
  208.                outside the #exec block.
  209.  
  210.   returns:     nothing
  211.   see also:    constant, forward, function, include, set, variable
  212.  
  213.  
  214.   for                                                        [Statement]
  215.   ──────────────────────────────────────────────────────────────────────
  216.   format:      for variable = start to/downto limit [ step/by expr ] do 
  217.                  expressions
  218.                end / endfor 
  219.  
  220.                The keywords 'step' and 'by' are optional. The keyword
  221.                'do' is also optional, but may make the statement easier
  222.                to read.
  223.  
  224.   remarks:     The 'for' statement evaluates 'expressions' repeatedly,
  225.                assigning a new value to 'variable' for each iteration of
  226.                the loop.
  227.  
  228.                The value of the 'start' expression is initially assigned
  229.                to 'variable' and the loop terminates when the value of
  230.                the 'limit' expression has been exceeded. 'limit' is
  231.                tested before the first iteration of the loop. Both the
  232.                'start' and 'limit' expressions are evaluated only once
  233.                at the first iteration of the loop.
  234.  
  235.                If the keyword 'to' is specified, the variable is
  236.                incremented for each iteration of the loop, otherwise the
  237.                variable is decremented.
  238.  
  239.                If the keyword 'step' is specified, the 'step' expression
  240.                defines a fixed value by which the loop variable is
  241.                incremented or decremented.
  242.  
  243.                If the keyword 'by' is specified, the value of the 'by'
  244.                expression is assigned to the loop variable at each
  245.                iteration. No scalar comparsion (less than or greater
  246.                than) is performed at each loop iteration when 'by' is
  247.                specified.
  248.  
  249.                The 'break' or 'return' statements can be used to force
  250.                an exit from the loop.
  251.  
  252.   returns:     nothing
  253.   see also:    break, loop, repeat, return, while
  254.  
  255.  
  256.   forward      [function/object] identifier                  [Statement]
  257.   ──────────────────────────────────────────────────────────────────────
  258.   remarks:     This keyword defines the specified identifier as a
  259.                function name or an object name. If the function or
  260.                object keyword is not specified, then 'function' is
  261.                assumed.
  262.  
  263.                If a function or object is referenced before it is
  264.                defined, then the 'forward' keyword must be used to
  265.                inform the compiler that the identifier is a function
  266.                name or an object name.
  267.  
  268.   returns:     nothing
  269.   see also:    function, key, variable
  270.  
  271.  
  272.   function                                                   [Statement]
  273.   ──────────────────────────────────────────────────────────────────────
  274.   format:      function  functionname  (arg1 arg2 ...)
  275.                 :
  276.                end / endfunction 
  277.  
  278.                The 'end' keyword is not required if this statement is
  279.                followed by another 'function', 'event', or 'key'
  280.                statement.
  281.  
  282.   remarks:     This statement defines a function in the current object
  283.                with the name 'functionname'. Expressions contained
  284.                within the function definition will be evaluated when the
  285.                function is called.
  286.  
  287.                Function arguments can be referenced as variables within
  288.                the function by listing them within parentheses after the
  289.                function name. Note that arguments can also be referenced
  290.                with the 'arg' function (see the 'arg' function).
  291.  
  292.   returns:     nothing
  293.   see also:    arg, event, forward, key, setfunction
  294.  
  295.   example:     function hello (name)
  296.                  say "Hello " + name + '!'
  297.                end 
  298.  
  299.  
  300.   #if                                                        [Statement]
  301.   ──────────────────────────────────────────────────────────────────────
  302.   format:      #if if_expr
  303.                  source code
  304.                #elseif elseif_expr
  305.                  source code
  306.                 :
  307.                #else 
  308.                  source code
  309.                #end / #endif 
  310.  
  311.                The '#elseif' and '#else' clauses are optional.
  312.  
  313.   remarks:     This statement is evaluated at compile-time. The
  314.                expression 'if_expr' is evaluated. If TRUE, then the
  315.                source code in the #if clause is compiled. If not TRUE,
  316.                then the expression 'elseif_expr' is evaluated. If
  317.                'elseif_expr' is TRUE, then the source code in the
  318.                #elseif clause is compiled, otherwise the source code in
  319.                the '#else' clause (if present) is compiled. Multiple
  320.                '#elseif' clauses may be specified.
  321.  
  322.   returns:     nothing
  323.  
  324.   see also:    constant, #exec
  325.  
  326.  
  327.   if                                                         [Statement]
  328.   ──────────────────────────────────────────────────────────────────────
  329.   format:      if if_expr then 
  330.                  expressions
  331.                elseif elseif_expr then 
  332.                  expressions
  333.                 :
  334.                else 
  335.                  expressions
  336.                end / endif 
  337.  
  338.                The 'elseif' and 'else' clauses are optional. The keyword
  339.                'then' is also optional, but may make the statement
  340.                easier to read.
  341.  
  342.   remarks:     The 'if' statement evaluates the expression 'if_expr'. If
  343.                TRUE, then the expressions in the 'if' clause are
  344.                evaluated. If not TRUE, then the expression 'elseif_expr'
  345.                is evaluated. If 'elseif_expr' is TRUE, then the
  346.                expressions in the 'elseif' clause are evaluated,
  347.                otherwise the expressions in the 'else' clause (if
  348.                present) are evaluated. Multiple 'elseif' clauses may be
  349.                specified.
  350.  
  351.   returns:     The value of the last expression evaluated in the 'if',
  352.                'elseif', or 'else' clauses.
  353.  
  354.   see also:    case, if?
  355.  
  356.  
  357.   if?          if_expr then_expr else_expr                   [Statement]
  358.   ──────────────────────────────────────────────────────────────────────
  359.   remarks:     The 'if?' statement is a shorter form of the 'if'
  360.                statement (see the 'if' statement'). The keywords 'then',
  361.                'elseif', and 'else' are not used.
  362.  
  363.                The 'if?' statement is primarily intended for use within
  364.                expressions, where it may be more convenient than the
  365.                'if' statement.
  366.  
  367.   returns:     The value of 'then_expr' or 'else_expr'.
  368.   see also:    case, if
  369.  
  370.   example:     string1 = if? a == 1  "a is one"  "a is not one"
  371.  
  372.  
  373.   include      expression                                    [Statement]
  374.   ──────────────────────────────────────────────────────────────────────
  375.   remarks:     This statement includes the macro language file defined
  376.                by 'expression' at the current source code location.
  377.  
  378.                The specified expression is always evaluated at compile
  379.                time. Any user-defined variables or functions referenced
  380.                within the expression must have been previously defined
  381.                as constants or within an '#exec-#execend' group.
  382.  
  383.                This statement will include both macro source (.Aml)
  384.                files and compiled macro (.X) files.
  385.  
  386.   returns:     nothing
  387.   see also:    constant, #exec
  388.  
  389.   example:     include "d:\\macros.aml"
  390.                include  drive + path + filename
  391.  
  392.  
  393.   key                                                        [Statement]
  394.   ──────────────────────────────────────────────────────────────────────
  395.   format:      key  <key or event>  (arg1 arg2 ...)
  396.                 :
  397.                end / endkey 
  398.  
  399.                The 'end' keyword is not required if this statement is
  400.                followed by another 'key', 'event', or 'function'
  401.                statement.
  402.  
  403.   remarks:     This statement defines an keyboard event handling
  404.                function in the current object with the event name: <key
  405.                or event>. Evaluation and arguments are handled in the
  406.                same way as the 'function' statement (see the 'function'
  407.                statement).
  408.  
  409.                For all keyboard events generated by the editor except
  410.                <char>, an eventcode is passed as the first argument. The
  411.                <char> event handling function is passed the Ascii
  412.                character entered as the first argument, and the
  413.                eventcode as the second argument.
  414.  
  415.   returns:     nothing
  416.   see also:    arg, event, forward, function, setfunction
  417.  
  418.   example:     key <ctrl c> (keycode)
  419.                  say "you pressed <ctrl c>, keycode=" + keycode
  420.                end 
  421.  
  422.  
  423.   keyword      keyword1, keyword2, ...                       [Statement]
  424.   ──────────────────────────────────────────────────────────────────────
  425.   remarks:     This statement inserts 'keyword1', 'keyword2', etc. as
  426.                syntax highlighting keywords in the current (executing)
  427.                object. The keywords must be separated by commas.
  428.  
  429.                Syntax highlighting keywords are stored as public object
  430.                variables whose value is the keyword color. If the value
  431.                is null, then the keyword color defined by the 'syntax'
  432.                function is assumed. The 'keyword' statement always
  433.                assigns a value of null to the object variable.
  434.  
  435.   returns:     nothing
  436.   see also:    setsyntax, syntax
  437.   example:     see the configuration file Syntax.aml
  438.  
  439.  
  440.   loop                                                       [Statement]
  441.   ──────────────────────────────────────────────────────────────────────
  442.   format:      loop [ expression times ]
  443.                  expressions
  444.                end / endloop 
  445.  
  446.   remarks:     The 'loop' statement evaluates 'expressions' repeatedly
  447.                until a 'break' or 'return' statement is encountered. An
  448.                optional 'times' expression may be specified to limit the
  449.                number of iterations.
  450.  
  451.   returns:     nothing
  452.   see also:    break, for, repeat, return, while
  453.  
  454.  
  455.   menu                                                       [Statement]
  456.   ──────────────────────────────────────────────────────────────────────
  457.   format:      menu  menuname
  458.                  item  description1  expressions1
  459.                  item  description2  expressions2
  460.                   :
  461.                end / endmenu 
  462.  
  463.   remarks:     This statement creates a new menu buffer with the
  464.                bufferid 'menuname'.
  465.  
  466.                'description1', 'description2', etc. are the text strings
  467.                associated with each item on the menu. Each description
  468.                may contain one ampersand character (&) indicating that
  469.                the character following it is to be highlighted.
  470.  
  471.                'expressions1', 'expressions2', etc. are macro
  472.                expressions to be associated with the menu items. These
  473.                expressions can be retrieved and evaluated when a menu
  474.                item is selected (see the 'getmenu' function).
  475.  
  476.   returns:     The new menu bufferid if successful, otherwise null.
  477.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menubar, popup
  478.  
  479.   example:     menu "Colors"
  480.                  item  "&Red"        say "you selected red"
  481.                  item  "&Green"      say "you selected green"
  482.                  item  "&Blue"       say "you selected blue"
  483.                end 
  484.  
  485.  
  486.   menubar                                                    [Statement]
  487.   ──────────────────────────────────────────────────────────────────────
  488.   format:      menubar  window  bar[1-4]
  489.                  item  description1  expressions1
  490.                  item  description2  expressions2
  491.                   :
  492.                end / endmenubar 
  493.  
  494.   remarks:     This statement creates or changes a menu bar for a
  495.                window. If 'window' is null, then the current window is
  496.                assumed.
  497.  
  498.                'description1', 'description2', etc. are the text strings
  499.                associated with each item on the menu bar. Each
  500.                description may contain one ampersand character (&)
  501.                indicating that the character following it is to be
  502.                highlighted. If a pair of ampersand characters (&&) is
  503.                specified, the character is highlighted with the window
  504.                title bar control color.
  505.  
  506.                'expressions1', 'expressions2', etc. are macro
  507.                expressions to be associated with the menu bar items.
  508.                These expressions can be retrieved and evaluated when a
  509.                menu bar item is selected (see the 'getmenubar'
  510.                function).
  511.  
  512.                Up to four menu bars can be defined for one window. 'bar'
  513.                specifies which of the four menu bars is being defined,
  514.                and can be one of the following values:
  515.  
  516.                1 - the primary menu bar at the top of the window, under
  517.                    the north title bar (if any)
  518.                2 - menu bar 2 directly underneath the primary menu bar
  519.                3 - menu bar 3 directly underneath menu bar 2
  520.                4 - menu bar 4 at the bottom of the window, above the
  521.                    south title bar (if any)
  522.  
  523.                If 'bar' is null, then 1 is assumed.
  524.  
  525.   returns:     TRUE if successful, otherwise null.
  526.   see also:    getmenubar, menu
  527.  
  528.   example:     menubar '' 1                   // primary menu bar
  529.                  item  "&Red"                 say "you selected red"
  530.                  item  "&Green"               say "you selected green"
  531.                  item  "&Blue"                say "you selected blue"
  532.                end 
  533.  
  534.  
  535.   object                                                     [Statement]
  536.   ──────────────────────────────────────────────────────────────────────
  537.   format:      object objectname ( parent1 parent2 ... )
  538.  
  539.                The inheritance list (parent1 parent2 ...) is optional.
  540.  
  541.   remarks:     This statement changes the current (executing) object to
  542.                'objectname'. If the object does not exist, then it is
  543.                created.
  544.  
  545.                If the inheritance path (parent1 parent2 ...) is
  546.                specified, then the object will inherit functions and
  547.                object variables from the objects 'parent1', 'parent2',
  548.                etc.
  549.  
  550.                If the object name 'entry' is specified from within an
  551.                external macro, then the current object is changed back
  552.                to what the current object was when the external macro
  553.                was invoked.
  554.  
  555.                Note that the 'object' statement will also terminate
  556.                (serve as an 'end' statement for) the 'function',
  557.                'event', or 'key' statements.
  558.  
  559.   returns:     nothing
  560.  
  561.   see also:    createobject, destroyobject, function, getcurrobj,
  562.                inheritkeys, loadobject, object?, settype, setobjtype
  563.  
  564.   example:     object abc
  565.                  // makes 'abc' the current object (and creates it
  566.                  //   if it doesn't exist)
  567.                object abc (def xyz)
  568.                  // makes 'abc' the current object (and creates it
  569.                  //   if it doesn't exist). 'abc' will inherit
  570.                  //   code and data from objects 'def' and 'xyz'
  571.  
  572.  
  573.   ref          variable                                      [Statement]
  574.   ──────────────────────────────────────────────────────────────────────
  575.   remarks:     The 'ref' keyword can be used to return more than one
  576.                value from a function.
  577.  
  578.                When 'ref' is specified immediately before a local or
  579.                global variable in a function call, it indicates that the
  580.                variable is to be passed 'by reference' to the function.
  581.                If the variable is modified in the called function, it is
  582.                also modified where it was called.
  583.  
  584.   returns:     nothing
  585.  
  586.   example:     function modify (c d)
  587.                  c = 13
  588.                  d = 14
  589.                end 
  590.  
  591.                function callmod
  592.                  a = 1
  593.                  b = 2
  594.                  modify ref a ref b
  595.                  return a + b                 // returns 27
  596.                end 
  597.  
  598.  
  599.   repeat                                                     [Statement]
  600.   ──────────────────────────────────────────────────────────────────────
  601.   format:      repeat 
  602.                  expressions
  603.                until until_expr
  604.  
  605.   remarks:     The 'repeat' statement evaluates 'expressions' repeatedly
  606.                until the value of the expression 'until_expr' is TRUE
  607.                (not zero and not null). 'until_expr' is tested after the
  608.                first iteration of the loop. The 'break' or 'return'
  609.                statements can be used to force an exit from the loop.
  610.  
  611.   returns:     null
  612.   see also:    break, for, loop, return, while
  613.  
  614.   example:     variable i
  615.                repeat                         // counts from 0 to 9
  616.                  say "i is " + i
  617.                  delay 500
  618.                  i = i + 1
  619.                until i == 10
  620.  
  621.  
  622.   return       expression                                    [Statement]
  623.   ──────────────────────────────────────────────────────────────────────
  624.   remarks:     This statement returns the value of 'expression'
  625.                immediately and unconditionally to the calling function.
  626.  
  627.   returns:     the value of the specified expression.
  628.  
  629.   example:     return "The value is: 13"    // returns a string
  630.                return 6 + 7                 // returns 13
  631.                return                       // returns the null string
  632.  
  633.  
  634.   variable     identifier, [variable...]                     [Statement]
  635.   ──────────────────────────────────────────────────────────────────────
  636.   remarks:     This keyword defines the specified identifier as a
  637.                variable name, and initializes it to zero.
  638.  
  639.                If a variable is referenced in a statement before the
  640.                statement in which it is assigned a value (and is not
  641.                referenced in a function argument list), then this
  642.                keyword must be used to inform the compiler that the
  643.                specified identifier is a variable name.
  644.  
  645.                Commas may be used to define multiple variables in one
  646.                variable statement. The keyword 'var' is a synonym for
  647.                'variable'.
  648.  
  649.   returns:     nothing
  650.   see also:    forward
  651.  
  652.   example:     function count (b)
  653.                  variable a
  654.                  while a < b do 
  655.                    a = a + 1
  656.                  end 
  657.                end 
  658.  
  659.  
  660.   while                                                      [Statement]
  661.   ──────────────────────────────────────────────────────────────────────
  662.   format:      while while_expr do 
  663.                  expressions
  664.                end / endwhile 
  665.  
  666.                The keyword 'do' is optional, but may make the statement
  667.                easier to read.
  668.  
  669.   remarks:     The 'while' statement evaluates 'expressions' repeatedly
  670.                while the expression 'while_expr' is TRUE (not zero and
  671.                not null). 'while_expr' is tested before the first
  672.                iteration of the loop. The 'break' or 'return' statements
  673.                can be used to force an exit from the loop.
  674.  
  675.   returns:     null
  676.   see also:    break, for, loop, repeat, return
  677.  
  678.  
  679.  
  680.  ┌─────────────────────────────────────────────────────────────────────┐
  681.  │ Functions                                                           │
  682.  └─────────────────────────────────────────────────────────────────────┘
  683.  
  684.  
  685.   about                                                         [Lib][a]
  686.   ──────────────────────────────────────────────────────────────────────
  687.   remarks:     Displays an about box with the editor version, and the
  688.                date and time.
  689.   returns:     The button pressed (Ok), or null if nothing was pressed.
  690.  
  691.  
  692.   actualcol    apparentcolumn row buffer
  693.   ──────────────────────────────────────────────────────────────────────
  694.   remarks:     Gets the actual column for an apparent (visible) column
  695.                in the specified line. If the row and buffer are not
  696.                specified, the current line and buffer are assumed.
  697.  
  698.                The apparent and actual columns may differ if the line
  699.                contains tab characters (Ascii 9) which are displayed as
  700.                spaces (see 'setbuftabs').
  701.  
  702.   returns:     the actual column if successful, otherwise null.
  703.   see also:    apparentcol, getbuftabs, setbuftabs
  704.  
  705.  
  706.   actualrow    (+/-)lines row buffer
  707.   ──────────────────────────────────────────────────────────────────────
  708.   remarks:     This function returns the actual line number which is the
  709.                apparent distance on the screen of 'lines' lines away
  710.                from the specified row. If 'buffer' is null or not
  711.                specified, then the current buffer is assumed. If 'row'
  712.                is not specified, then the line at the cursor is assumed.
  713.  
  714.   returns:     A line number if successful, otherwise null.
  715.   see also:    apparentrow, fold?, getfold
  716.  
  717.   example:     actualrow -5
  718.                  // returns the line number which appears to be 5
  719.                  //  lines above the current line on the screen
  720.  
  721.  
  722.   addhistory   historybuffer string                             [Lib][a]
  723.   ──────────────────────────────────────────────────────────────────────
  724.   remarks:     Adds 'string' to the specified history buffer and makes
  725.                it the most recently used history string. The history
  726.                buffer is created if it does not exist.
  727.  
  728.   returns:     nothing
  729.   see also:    askhistory, gethiststr, pophistory
  730.  
  731.   example:     addhistory "_load" "c:\\file.txt"
  732.                  // adds c:\file.txt to the history buffer '_load'
  733.                addhistory "_find" "apples"
  734.                  // adds 'apples' to the history buffer '_find'
  735.  
  736.  
  737.   addline      string col row buffer
  738.   ──────────────────────────────────────────────────────────────────────
  739.   remarks:     Inserts a new line containing the specified string into a
  740.                buffer. This function is almost identical to the
  741.                'insline' function, except that new lines are added to
  742.                the end of the buffer if 'row' is not specified (see
  743.                'insline').
  744.  
  745.   returns:     TRUE if successful, otherwise null.
  746.   see also:    delline, insline, insabove, joinline, splitline
  747.  
  748.   example:     addline
  749.                  // adds a new blank line to the end of the
  750.                  //   current buffer
  751.                addline "Last line"
  752.                  // adds a new line with the text 'Last line'
  753.                  //   after the last line in the current buffer
  754.  
  755.  
  756.   adjustcol    col window
  757.   ──────────────────────────────────────────────────────────────────────
  758.   remarks:     Scrolls a window left or right relative to the position
  759.                of the cursor in the window. If 'window' is not
  760.                specified, the current window is assumed.
  761.  
  762.                This function does not move the cursor in the buffer. The
  763.                window is scrolled so that the cursor appears 'col' minus
  764.                1 columns from the left edge of the client area. If 'col'
  765.                is not specified, the window is scrolled to a position
  766.                that leaves the cursor in the horizontal center of the
  767.                window.
  768.  
  769.   returns:     nothing
  770.   see also:    adjustrow
  771.  
  772.   example:     adjustcol
  773.                  // attempts to scroll the window so that the cursor
  774.                  //   is horizontally centered in the window.
  775.                adjustcol 3
  776.                  // attempts to scroll the window so that the cursor
  777.                  //   is 3 columns from the left edge of the window
  778.  
  779.  
  780.   adjustrow    row window
  781.   ──────────────────────────────────────────────────────────────────────
  782.   remarks:     Scrolls a window up or down relative to the position of
  783.                the cursor in the window. If 'window' is not specified,
  784.                the current window is assumed.
  785.  
  786.                This function does not move the cursor in the buffer. The
  787.                window is scrolled so that the cursor appears 'row' minus
  788.                1 lines from the top edge of the client area. If 'row' is
  789.                not specified, the window is scrolled to a position that
  790.                leaves the cursor in the vertical center of the window.
  791.  
  792.   returns:     nothing
  793.   see also:    adjustcol
  794.  
  795.   example:     adjustrow
  796.                  // attempts to scroll the window so that the cursor
  797.                  //   is vertically centered in the window.
  798.                adjustrow 3
  799.                  // attempts to scroll the window so that the cursor
  800.                  //   is 3 rows from the top edge of the window
  801.  
  802.  
  803.   apparentcol  actualcol row buffer
  804.   ──────────────────────────────────────────────────────────────────────
  805.   remarks:     Gets the apparent (visible) column for an actual column
  806.                in the specified line. If the row and buffer are not
  807.                specified, the current line and buffer are assumed.
  808.  
  809.                The apparent and actual columns may differ if the line
  810.                contains tab characters (Ascii 9) which are displayed as
  811.                spaces (see 'setbuftabs').
  812.  
  813.   returns:     the actual column if successful, otherwise null.
  814.   see also:    actualcol, getbuftabs, setbuftabs
  815.  
  816.  
  817.   apparentrow  (+/-)lines row buffer
  818.   ──────────────────────────────────────────────────────────────────────
  819.   remarks:     This function returns the apparent line number on the
  820.                screen which is the actual distance of 'lines' lines away
  821.                from the specified row. If 'buffer' is null or not
  822.                specified, then the current buffer is assumed. If 'row'
  823.                is not specified, then the line at the cursor is assumed.
  824.  
  825.   returns:     A line number if successful, otherwise null.
  826.   see also:    actualrow, fold?, getfold
  827.  
  828.   example:     apparentrow 5
  829.                  // returns the apparent line number on the screen
  830.                  //   of the line 5 lines below the current line
  831.  
  832.  
  833.   arg          n
  834.   ──────────────────────────────────────────────────────────────────────
  835.   remarks:     Retrieves the 'nth' argument, or the number of arguments
  836.                passed to the currently executing function. If 'n' is
  837.                zero or not specified, then the number of arguments is
  838.                returned, otherwise the 'nth' argument is returned.
  839.  
  840.   returns:     A function argument or the number of function arguments.
  841.   see also:    function, key
  842.  
  843.   example:     function abc
  844.                  say (arg) + " args passed, first is: " + (arg 1)
  845.                end 
  846.  
  847.                abc 1 2 3     // displays: '3 args passed, first is: 1'
  848.  
  849.  
  850.   array        size
  851.   ──────────────────────────────────────────────────────────────────────
  852.   remarks:     Creates an array of 'size' elements, where each element
  853.                in the array is initialized to the null string. 'size'
  854.                cannot be greater than 2000.
  855.   returns:     an array
  856.   see also:    array?
  857.  
  858.  
  859.   array?       expression
  860.   ──────────────────────────────────────────────────────────────────────
  861.   remarks:     Tests if the specified expression is an array.
  862.   returns:     TRUE if the exression is an array, otherwise null.
  863.   see also:    array
  864.  
  865.  
  866.   asciibuf     buffer
  867.   ──────────────────────────────────────────────────────────────────────
  868.   remarks:     This function creates a new buffer containing an Ascii
  869.                chart with 256 lines - one for each Ascii character. The
  870.                new buffer will become the current buffer. If 'buffer' is
  871.                null or not specified, a unique bufferid will be
  872.                assigned.
  873.  
  874.                Note: this function will not display the new buffer in a
  875.                window. The 'popup' or 'openbuf' library functions should
  876.                be used to display the buffer.
  877.  
  878.   returns:     The new bufferid if successful, otherwise null.
  879.  
  880.   see also:    asciibuf, createbbuf, destroybuf, loadbuf, menu, openbuf,
  881.                popup
  882.  
  883.  
  884.   ask          prompt history init title opt=[c12d] width       [Ext][a]
  885.   ──────────────────────────────────────────────────────────────────────
  886.   remarks:     Prompts the user to enter a string. The following
  887.                parameters may be specified:
  888.  
  889.                prompt   - the prompt displayed to the user
  890.                history  - the history buffer to use in the prompt
  891.                init     - the initial value to place in the prompt
  892.                title    - the prompt title (dialog boxes only)
  893.                width    - the prompt width (dialog boxes only)
  894.  
  895.                The following prompt style options may also be specified:
  896.  
  897.                  c - command line prompt
  898.                  1 - one-line box prompt
  899.                  2 - two-line box prompt
  900.                  d - dialog box prompt
  901.  
  902.                If no options are specified, the value of PromptStyle in
  903.                Config.aml is used as the default prompt style.
  904.  
  905.                If a history bufferid is specified and does not already
  906.                exist, then it is created. Note that entered strings are
  907.                not automatically added to the history buffer (the
  908.                'addhistory' function must be used).
  909.  
  910.   returns:     This function returns the string entered. If nothing is
  911.                entered and the <enter> key is pressed, then one blank
  912.                (Ascii 32) is returned. If the prompt is cancelled, then
  913.                null is returned.
  914.  
  915.   see also:    addhistory, okbox, pickfile, popup, yncbox
  916.  
  917.   example:     ask "Enter a string"
  918.                  // prompts for a string
  919.                ask "Enter a file name" "_load" "c:\\file.txt"
  920.                  // prompts for a string, initializing the prompt with
  921.                  //   c:\file.txt. The "_load" history buffer is
  922.                  //   available within the prompt
  923.                ask "Enter a string" '' "initial string" "Enter" 'd' 20
  924.                  // prompts for a string using a dialog box prompt of
  925.                  //   width 20 with the title 'Enter". The prompt
  926.                  //   is initialized with "initial string".
  927.  
  928.  
  929.   askbox       refvalue prompt history init                     [Lib][a]
  930.   ──────────────────────────────────────────────────────────────────────
  931.   remarks:     Prompts the user to enter a string in a two-line box
  932.                prompt. The following parameters may be specified:
  933.  
  934.                refvalue - the variable to hold the return string
  935.                prompt   - the prompt displayed to the user
  936.                history  - the history buffer to use in the prompt
  937.                init     - the initial value to place in the prompt
  938.  
  939.                If a history bufferid is specified and does not already
  940.                exist, then it is created. Note that entered strings are
  941.                not automatically added to the history buffer (the
  942.                'addhistory' function must be used).
  943.  
  944.   returns:     TRUE if a string was entered, or null if the prompt was
  945.                cancelled. The user string is returned in the variable
  946.                'refvalue' (passed by reference).
  947.  
  948.   see also:    addhistory, ask, askbox1, askline
  949.  
  950.   example:     variable value
  951.                // prompt for a string
  952.                if askbox ref value "File name?" _load "File.txt" then 
  953.                  // user string is returned in 'value'
  954.                  msgbox "You entered " + value
  955.                end 
  956.  
  957.  
  958.   askbox1      refvalue prompt history init                     [Lib][a]
  959.   ──────────────────────────────────────────────────────────────────────
  960.   remarks:     Prompts the user to enter a string in a one-line box
  961.                prompt. The parameters and return values are identical to
  962.                the 'askbox' function.
  963.  
  964.   returns:     see askbox.
  965.   see also:    ask, askbox, askline
  966.  
  967.  
  968.   askhistory                                               [Lib][prompt]
  969.   ──────────────────────────────────────────────────────────────────────
  970.   remarks:     Displays a history popup menu for the current prompt. If
  971.                a string is selected, it is entered automatically into
  972.                the prompt. This function is only for use within prompts.
  973.   returns:     The string selected from the popup menu, or null if
  974.                nothing was selected or the history buffer does not
  975.                exist.
  976.   see also:    pophistory
  977.  
  978.  
  979.   askline      refvalue prompt history init                     [Lib][a]
  980.   ──────────────────────────────────────────────────────────────────────
  981.   remarks:     Prompts the user to enter a string in a command-line
  982.                prompt. The parameters and return values are identical to
  983.                the 'askbox' function.
  984.  
  985.   returns:     see askbox.
  986.   see also:    ask, askbox, askbox1
  987.  
  988.  
  989.   assignkey                                                   [Lib][mon]
  990.   ──────────────────────────────────────────────────────────────────────
  991.   remarks:     Assigns the current scrap key macro to a key. The user is
  992.                prompted to enter the key. If the key macro is assigned,
  993.                the scrap macro is erased.
  994.  
  995.                Note: key macros cannot be assigned to multi-keys with
  996.                this function.
  997.  
  998.   returns:     nothing
  999.   see also:    assignkey, openkey, playing?, savekey, setting
  1000.  
  1001.  
  1002.   base         number newbase
  1003.   ──────────────────────────────────────────────────────────────────────
  1004.   remarks:     Converts a decimal or hexadecimal number to a string
  1005.                representing a number of any base from 2 to 36.
  1006.  
  1007.   returns:     a string representing the number in base 'newbase'.
  1008.   see also:    bin2hex, hex2bin
  1009.  
  1010.   example:     base 45 16     // returns "2D"
  1011.                base 45 8      // returns "55"
  1012.                base 45 2      // returns "101101"
  1013.  
  1014.  
  1015.   beep         frequency milliseconds
  1016.   ──────────────────────────────────────────────────────────────────────
  1017.   remarks:     Beeps the PC speaker at the specified frequency (in Hz)
  1018.                for the specified number of milliseconds. If
  1019.                'milliseconds' is omitted, the speaker will sound
  1020.                indefinitely until the next call to this function. If no
  1021.                arguments are passed to this function, then the speaker
  1022.                is turned off.
  1023.  
  1024.   returns:     nothing
  1025.   see also:    delay
  1026.  
  1027.   example:     beep 500 1000        // beeps at 500Hz for 1 second
  1028.                beep 800             // beeps at 800Hz indefinitely
  1029.                beep                 // turns sound off
  1030.  
  1031.  
  1032.   begdesk                                                       [Lib][a]
  1033.   ──────────────────────────────────────────────────────────────────────
  1034.   remarks:     Clears the current desktop and marks the beginning of a
  1035.                series of window 'close' calls which add each closed
  1036.                window to the current desktop. This would typically be
  1037.                used for exiting the editor and saving all open windows
  1038.                as the current desktop.
  1039.   returns:     nothing
  1040.   see also:    close, enddesk
  1041.  
  1042.  
  1043.   bin2hex      binarystring
  1044.   ──────────────────────────────────────────────────────────────────────
  1045.   remarks:     Converts a binary string into a string representing its
  1046.                hexadecimal value
  1047.  
  1048.   returns:     a hexadecimal string.
  1049.   see also:    hex2bin
  1050.  
  1051.   example:     bin2hex 'a'                    // returns "61"
  1052.                bin2hex 'abc'                  // returns "616263"
  1053.  
  1054.  
  1055.   bin2int      binarystring
  1056.   ──────────────────────────────────────────────────────────────────────
  1057.   remarks:     Converts 1, 2, or 4 byte binary strings into integers.
  1058.  
  1059.   returns:     an integer.
  1060.   see also:    char, char2, char4
  1061.  
  1062.   example:     bin2int 'a'                    // returns 97
  1063.                bin2int 'ab'                   // returns 25185
  1064.                bin2int 'abcd'                 // returns 1684234849
  1065.  
  1066.  
  1067.   blink        [0/1]
  1068.   ──────────────────────────────────────────────────────────────────────
  1069.   remarks:     Enables (1) or disables (0) the video blink mode.
  1070.                Disabling the video blink mode allows the brighter
  1071.                background colors (128-255) to be used.
  1072.   returns:     nothing
  1073.   see also:    display
  1074.  
  1075.  
  1076.   book?        bookmark
  1077.   ──────────────────────────────────────────────────────────────────────
  1078.   remarks:     Tests if the specified bookmark exists.
  1079.   returns:     TRUE if the bookmark exists, otherwise null.
  1080.   see also:    setbook
  1081.  
  1082.  
  1083.   bootpath     filename
  1084.   ──────────────────────────────────────────────────────────────────────
  1085.   remarks:     Converts an unqualified or partially qualified filename
  1086.                into a fully-qualified filename based on the editor
  1087.                'bootpath' (the location of the main editor .Exe file).
  1088.  
  1089.   returns:     a fully qualified filename or directory specification.
  1090.   see also:    getbootpath, qualify
  1091.  
  1092.   example:     bootpath "kbd.aml"
  1093.                  // returns c:\aurora\kbd.aml if 'c:\aurora' is the
  1094.                  //   editor bootpath
  1095.  
  1096.  
  1097.   break? 
  1098.   ──────────────────────────────────────────────────────────────────────
  1099.   remarks:     Tests if <ctrl break> was pressed.
  1100.   returns:     TRUE if <ctrl break> was pressed, otherwise null.
  1101.   see also:    breakoff
  1102.  
  1103.  
  1104.   breakoff 
  1105.   ──────────────────────────────────────────────────────────────────────
  1106.   remarks:     Clears the break flag that was turned on by pressing the
  1107.                <ctrl break> key. Calling this function will stop <ctrl
  1108.                break> from exiting loops and beeps.
  1109.   returns:     nothing
  1110.   see also:    break?
  1111.  
  1112.  
  1113.   bufchanged?  buffer
  1114.   ──────────────────────────────────────────────────────────────────────
  1115.   remarks:     Tests if a buffer is modified by checking the buffer
  1116.                'modified' flag. If 'buffer' is null or not specified,
  1117.                the current buffer is assumed.
  1118.   returns:     non-zero if the buffer is modified, otherwise null.
  1119.   see also:    bufferflag
  1120.  
  1121.  
  1122.   buffer?      buffer
  1123.   ──────────────────────────────────────────────────────────────────────
  1124.   remarks:     Tests if a buffer exists. If 'buffer' is null or not
  1125.                specified, the current buffer is assumed.
  1126.   returns:     TRUE if the buffer exists, otherwise null.
  1127.   see also:    bufferflag
  1128.  
  1129.  
  1130.   bufferflag   opt=[-+?cdhmprt] buffer
  1131.   ──────────────────────────────────────────────────────────────────────
  1132.   remarks:     Turns buffer flags on or off, or tests if a buffer flag
  1133.                is turned on. If 'buffer' is null or not specified, the
  1134.                current buffer is assumed. The following flags can be
  1135.                specified:
  1136.  
  1137.                  c - clear all 'dirty' or modified lines (set only)
  1138.                  d - directory buffer (query only)
  1139.                        This flag can be used to test if a buffer was
  1140.                        initially loaded as a directory.
  1141.                  h - hidden buffer
  1142.                        This flag can be used to hide a buffer from the
  1143.                        'getprevbuf' function. This will effectively
  1144.                        prevent temporary or internal buffers from being
  1145.                        displayed on editor buffer lists.
  1146.                  m - buffer 'modified' flag
  1147.                  p - process 'dirty' or modified lines
  1148.                  r - buffer read/only (protected) flag
  1149.                  t - truncated buffer (query only)
  1150.                        This flag can be used to test if the specified
  1151.                        buffer has been truncated when loaded. Truncation
  1152.                        can occur if <ctrl break> was pressed while
  1153.                        loading the file.
  1154.                  - - turn specified flags off
  1155.                  + - turn specified flags on
  1156.                  ? - return true if specified flags are on
  1157.  
  1158.                If flags are specified without -, +, or ?, then they will
  1159.                be turned on and any other flags not specified will be
  1160.                turned off.
  1161.  
  1162.   returns:     TRUE if '?' is specified with flags that are on,
  1163.                otherwise null
  1164.   see also:    bufchanged?, lineflag
  1165.  
  1166.   example:     bufferflag "-m"    // turn off the buffer-modified flag
  1167.                bufferflag "c"     // clear all modified lines
  1168.                bufferflag "r"     // make current buffer read/only
  1169.  
  1170.  
  1171.   button       title x y width height                           [Lib][a]
  1172.   ──────────────────────────────────────────────────────────────────────
  1173.   remarks:     Adds a button window control to the current dialog box.
  1174.                The button window becomes the current window. The
  1175.                following parameters may be specified:
  1176.  
  1177.                title   - the button title
  1178.                x       - the button x-position in the dialog box
  1179.                y       - the button y-position in the dialog box
  1180.                width   - the button width (if not specified, the button
  1181.                          is sized to accomodate the title)
  1182.                height  - the button heigth (if not specified, the button
  1183.                          height is 1)
  1184.  
  1185.   returns:     The button window id.
  1186.   see also:    field, dialog, groupbox, listbox, whenenter
  1187.  
  1188.   example:     dialog "Test Dialog Box" 40 5   // create a dialog box
  1189.                button "O&k" 18 2 8             // add a button
  1190.                getdialog                       // display the dialog box
  1191.  
  1192.  
  1193.   button?      buttonmask
  1194.   ──────────────────────────────────────────────────────────────────────
  1195.   remarks:     Tests if the specified mouse button(s) are currently
  1196.                pressed down. 'buttonmask' can be any combination of the
  1197.                following values bitwise-ORed together:
  1198.  
  1199.                01h - left button is down
  1200.                02h - right button is down
  1201.                04h - center button is down
  1202.  
  1203.                If 'buttonmask' is not specified, then 07h is assumed.
  1204.  
  1205.   returns:     Non-zero if the specified button keys are down, otherwise
  1206.                zero.
  1207.  
  1208.   example:     button?      // test if any mouse buttons are down
  1209.                button? 2    // test if the right mouse button is down
  1210.  
  1211.  
  1212.   call         funexpression arg1 arg2 ...
  1213.   ──────────────────────────────────────────────────────────────────────
  1214.   remarks:     Calls a function in the current object whose name is the
  1215.                value of 'funexpression', passing the arguments 'arg1',
  1216.                'arg2', etc.
  1217.  
  1218.   returns:     The return value of 'funexpression'.
  1219.   see also:    eval, pass, send, sendobject
  1220.  
  1221.   example:     call "beep" 400 400
  1222.                call "be" + "ep" 400 400
  1223.  
  1224.  
  1225.   cascade                                                     [Lib][win]
  1226.   ──────────────────────────────────────────────────────────────────────
  1227.   remarks:     Cascades all non-minimized windows on the screen.
  1228.   returns:     nothing
  1229.   see also:    splitwin, tile
  1230.  
  1231.  
  1232.   caseblock    opt=[lu] mark
  1233.   ──────────────────────────────────────────────────────────────────────
  1234.   remarks:     Changes the case of marked text. If 'mark' is not
  1235.                specified, then the default markid is assumed.
  1236.  
  1237.                Any combination of the following options may be specified:
  1238.  
  1239.                  l - change text to lower case
  1240.                  u - change text to upper case
  1241.  
  1242.                If options 'l' and 'u' are both specified, the case of
  1243.                each character in the mark is toggled. If no options are
  1244.                specified, then 'u' is assumed.
  1245.  
  1246.   returns:     TRUE if successful, otherwise null.
  1247.   see also:    flipcase, locase, upcase
  1248.  
  1249.  
  1250.   char         number1 number2 ...
  1251.   ──────────────────────────────────────────────────────────────────────
  1252.   remarks:     Converts its numeric arguments to one byte character
  1253.                strings whose Ascii value is the numeric argument.
  1254.  
  1255.   returns:     The concatenated string of all arguments converted to one
  1256.                byte strings.
  1257.   see also:    bin2int, char2, char4
  1258.  
  1259.   example:     char 97                        // returns "a"
  1260.                char 65 66 67                  // returns "ABC"
  1261.  
  1262.  
  1263.   char2        number1 number2 ...
  1264.   ──────────────────────────────────────────────────────────────────────
  1265.   remarks:     Converts its numeric arguments to two byte binary
  1266.                character strings.
  1267.  
  1268.   returns:     The concatenated string of all arguments converted to two
  1269.                byte strings.
  1270.   see also:    bin2int, char, char4
  1271.  
  1272.   example:     char2 6261h                    // returns "ab"
  1273.  
  1274.  
  1275.   char4        number1 number2 ...
  1276.   ──────────────────────────────────────────────────────────────────────
  1277.   remarks:     Converts its numeric arguments to four byte binary
  1278.                character strings.
  1279.  
  1280.   returns:     The concatenated string of all arguments converted to
  1281.                four byte strings.
  1282.   see also:    bin2int, char, char2
  1283.  
  1284.   example:     char4 64636261h                // returns "abcd"
  1285.  
  1286.  
  1287.   close        opt=[s]           [Lib][win,edit_fmgr,prompt] [Ext][edit]
  1288.   ──────────────────────────────────────────────────────────────────────
  1289.   remarks:     Closes the current window. If the buffer in the window is
  1290.                not displayed in any other windows, the buffer is also
  1291.                destroyed. If option 's' is specified and the window is
  1292.                an edit window, the file is saved.
  1293.  
  1294.   returns:     nothing
  1295.   see also:    open, save, setname
  1296.  
  1297.   example:     close
  1298.                  // closes the current window
  1299.                close 's'
  1300.                  // saves the current buffer and closes the current
  1301.                  //   window
  1302.  
  1303.  
  1304.   closefile    handle
  1305.   ──────────────────────────────────────────────────────────────────────
  1306.   remarks:     Closes a file handle opened with 'openfile'. If a file
  1307.                handle is not specified, then the file handle returned
  1308.                from the most recent openfile call is assumed.
  1309.  
  1310.   returns:     nothing
  1311.   see also:    filepos, openfile, readfile, writefile
  1312.  
  1313.  
  1314.   closefold    opt=[s] row buffer
  1315.   ──────────────────────────────────────────────────────────────────────
  1316.   remarks:     Closes the open fold spanning the specified row. If
  1317.                'buffer' is null or not specified, then the current
  1318.                buffer is assumed. If 'row' is not specified, then the
  1319.                line at the cursor is assumed. If option 's' is
  1320.                specified, all open subfolds within the fold are also
  1321.                closed.
  1322.  
  1323.   returns:     the number of folds closed
  1324.   see also:    createfold, destroyfold, foldblock, getfold, openfold
  1325.  
  1326.   example:     closefold
  1327.                  // closes the open fold spanning the current line in
  1328.                  //   the current buffer, leaving any subfolds open
  1329.  
  1330.  
  1331.   closemouse 
  1332.   ──────────────────────────────────────────────────────────────────────
  1333.   remarks:     Deactivates the mouse driver and removes the mouse
  1334.                pointer from the screen. When this function is called,
  1335.                mouse events will no longer be processed by the event
  1336.                queue.
  1337.   returns:     nothing
  1338.   see also:    openmouse
  1339.  
  1340.  
  1341.   col          col buffer
  1342.   ──────────────────────────────────────────────────────────────────────
  1343.   remarks:     Moves the cursor to the specified column, but does not
  1344.                change the row. If 'buffer' is null or not specified, the
  1345.                current buffer is assumed.
  1346.  
  1347.   returns:     the new cursor column if successful, otherwise null.
  1348.   see also:    gotopos, row
  1349.  
  1350.   example:     col 1
  1351.                  // moves the cursor to column 1 of the current line
  1352.                  //   in the current buffer
  1353.                col getlinelen + 1
  1354.                  // moves the cursor one column past the end of the
  1355.                  //   current line in the current buffer
  1356.  
  1357.  
  1358.   colorcursor  color cursor
  1359.   ──────────────────────────────────────────────────────────────────────
  1360.   remarks:     Changes the color of a cursor to the attribute 'color'.
  1361.                If 'cursor' is not specified, the current 'cursor' in the
  1362.                current buffer is assumed.
  1363.  
  1364.                If the color -1 is specified, the default window mark
  1365.                color is used. If the color -2 is specified, the cursor
  1366.                is hidden.
  1367.  
  1368.   returns:     TRUE if successful, otherwise null.
  1369.   see also:    colormark, getcolor, getcurrcurs, setcolor
  1370.  
  1371.   example:     colorcursor 95
  1372.                  // changes the color of the current cursor to
  1373.                  //   white on magenta
  1374.  
  1375.  
  1376.   colormark    color mark
  1377.   ──────────────────────────────────────────────────────────────────────
  1378.   remarks:     Changes the mark color to the attribute 'color'. If this
  1379.                function is not used, the window mark color is assumed.
  1380.                This function allows individual marks to have different
  1381.                colors. If 'mark' is not specified, the default markid is
  1382.                assumed.
  1383.  
  1384.                If the color -1 is specified, the default window mark
  1385.                color is used. If the color -2 is specified, the mark is
  1386.                hidden.
  1387.  
  1388.   returns:     TRUE if successful, otherwise null.
  1389.   see also:    colorcursor, getcolor, setcolor
  1390.  
  1391.   example:     colormark 95
  1392.                  // changes the color of the current mark to
  1393.                  //   white on magenta
  1394.  
  1395.  
  1396.   compilemacro  sourcefile destfile
  1397.   ──────────────────────────────────────────────────────────────────────
  1398.   remarks:     Compiles the macro source file 'sourcefile' and places
  1399.                the object code in the file 'destfile'. Error information
  1400.                can be retrieved with the 'geterror' function.
  1401.  
  1402.   returns:     Null if the compilation was successful, otherwise one of
  1403.                the following compiler error codes:
  1404.  
  1405.                  1001 - can't open file
  1406.                  1002, 1003 - read error
  1407.                  1004 - not an executable macro file
  1408.                  1031 - write error
  1409.                  1032 - can't open compiler output file
  1410.  
  1411.                  1101 - no closing quote
  1412.                  1102 - no closing bracket
  1413.                  1103 - invalid symbol
  1414.                  1104 - invalid key or event
  1415.  
  1416.                  1301 - no terminator
  1417.                  1302 - unexpected end of source
  1418.                  1303 - no closing parenthesis
  1419.                  1310 - unexpected argument
  1420.                  1311 - unexpected terminator
  1421.                  1312 - unexpected function
  1422.                  1313 - unexpected operator
  1423.                  1314 - unexpected keyword
  1424.                  1315 - invalid redefinition
  1425.                  1318 - invalid number
  1426.                  1319 - identifier not defined (the identifier name
  1427.                           can be retrieved with the 'geterror' function,
  1428.                           using option 's')
  1429.                  1320 - bad assignment
  1430.                  1330 - bad when clause
  1431.                  1336 - improperly placed break
  1432.                  1337 - invalid reference
  1433.  
  1434.                  1501 - can't open include file (the include file name
  1435.                           can be retrieved with the 'geterror' function,
  1436.                           option 's')
  1437.                  1502 - include level exceeded
  1438.                  1504 - statement must be at top level
  1439.                  1507 - can't redefine builtin function
  1440.                  1508 - duplicated function argument
  1441.  
  1442.                  1701 - too many variables
  1443.                  1703 - function or expression too large
  1444.                  1704, 1705, 1707, 1708 - internal stack overflow
  1445.                  1706 - out of symbol space
  1446.  
  1447.                  any other code -  fatal compilation error
  1448.  
  1449.   see also:    eval, geterror, runmacro, seterror
  1450.  
  1451.   example:     compilemacro "c:\\aurora\\macro\\utility.aml"
  1452.                             "c:\\aurora\\macro\\utility.x"
  1453.  
  1454.  
  1455.   concat       string1 string2 ...
  1456.   ──────────────────────────────────────────────────────────────────────
  1457.   remarks:     Concatenates all of its arguments. All arguments may be
  1458.                numeric. The concatenation operator (+) may also be used
  1459.                to concatenate strings, but at least one operand must be
  1460.                non-numeric.
  1461.  
  1462.   returns:     the concatenated string of all the arguments.
  1463.   see also:    copystr
  1464.  
  1465.   example:     concat "Red" "Green" "Blue"    // returns "RedGreenBlue"
  1466.                concat 1 2 3                   // returns "123"
  1467.  
  1468.  
  1469.   copyblock    mark buffer col row
  1470.   ──────────────────────────────────────────────────────────────────────
  1471.   remarks:     Copies marked text after the position 'col','row' in the
  1472.                specified buffer. The text is inserted at the new
  1473.                position and the mark is also moved to the new position.
  1474.  
  1475.                If 'mark' is not specified, the default markid is
  1476.                assumed. If 'buffer' is null or not specified, the
  1477.                current buffer is assumed. If 'col' and 'row' are not
  1478.                specified, the current cursor position is assumed.
  1479.  
  1480.   returns:     TRUE if successful, otherwise null.
  1481.   see also:    copyblockover, moveblock
  1482.  
  1483.  
  1484.   copyblockover  mark buffer col row
  1485.   ──────────────────────────────────────────────────────────────────────
  1486.   remarks:     Copies marked text to 'col','row' in the specified
  1487.                buffer. The text is overlaid at the new position (not
  1488.                inserted) and the mark is moved to the new location.
  1489.  
  1490.                If 'mark' is not specified, the default markid is
  1491.                assumed. If 'buffer' is null or not specified, the
  1492.                current buffer is assumed. If 'col' and 'row' are not
  1493.                specified, the current cursor position is assumed.
  1494.  
  1495.   returns:     TRUE if successful, otherwise null.
  1496.   see also:    copyblock, moveblock
  1497.  
  1498.  
  1499.   copyfile     sourcefile destfile opt=[au]
  1500.   ──────────────────────────────────────────────────────────────────────
  1501.   remarks:     Copies the file 'sourcefile' to 'destfile'. Any of the
  1502.                following options can be specified:
  1503.  
  1504.                  a - append the sourcefile to the destination file
  1505.                  u - update the destination file date/time
  1506.  
  1507.   returns:     Non-zero if successful, otherwise zero.
  1508.   see also:    deletefile, renamefile
  1509.  
  1510.  
  1511.   copymark     oldmark newmark
  1512.   ──────────────────────────────────────────────────────────────────────
  1513.   remarks:     Creates a new mark with the markid 'newmark' by making a
  1514.                copy of 'oldmark'. If 'newmark' is not specified, a
  1515.                unique markid will be assigned.
  1516.  
  1517.                The new mark will reside in the same buffer as 'oldmark'
  1518.                and have the same size and type. The new mark becomes the
  1519.                current mark for the buffer.
  1520.  
  1521.   returns:     TRUE if successful, otherwise null.
  1522.   see also:    markchar, markcolumn, markline, markstream
  1523.  
  1524.   example:     copymark '*' 'T'   // create a temporary copy of a mark
  1525.                  :
  1526.                destroymark 'T'    // destroy the temporary mark
  1527.  
  1528.  
  1529.   copystr      string count
  1530.   ──────────────────────────────────────────────────────────────────────
  1531.   remarks:     Concatenates a string with itself for 'count' number of
  1532.                times.
  1533.  
  1534.   returns:     the argument string copied 'count' times.
  1535.   see also:    concat
  1536.  
  1537.   example:     copystr "Red" 4    // returns "RedRedRedRed"
  1538.  
  1539.  
  1540.   copywin                                                    [Lib][edit]
  1541.   ──────────────────────────────────────────────────────────────────────
  1542.   remarks:     Copies the current edit window. The new edit window will
  1543.                display the same file in memory as the original window.
  1544.   returns:     TRUE if successful, otherwise null.
  1545.   see also:    splitwin
  1546.  
  1547.  
  1548.   createbuf    buffer line1 line2 ...
  1549.   ──────────────────────────────────────────────────────────────────────
  1550.   remarks:     This function creates a new buffer with the specified
  1551.                bufferid. If the bufferid is already in use, this
  1552.                function will fail. If 'buffer' is null or not specified,
  1553.                a unique bufferid will be assigned. The new buffer will
  1554.                become the current buffer.
  1555.  
  1556.                Initial lines can be placed in the buffer with the
  1557.                arguments 'line1', 'line2', etc. If no lines are
  1558.                specified, one blank line is assumed.
  1559.  
  1560.                Note: this function will not display the new buffer in a
  1561.                window. The 'openbuf' library function should be used to
  1562.                display the buffer.
  1563.  
  1564.   returns:     The new bufferid if successful, otherwise null.
  1565.  
  1566.   see also:    asciibuf, buffer?, createbbuf, destroybuf, loadbuf, menu,
  1567.                openbuf
  1568.  
  1569.   example:     createbuf        // creates a new buffer and returns a
  1570.                                 //   unique bufferid
  1571.                createbuf "abc"  // creates new buffer with the
  1572.                                 //   bufferid "abc"
  1573.                createbuf ''     // creates a new buffer with 2 lines
  1574.                  "First Line"   //   and returns a unique bufferid
  1575.                  "Second Line"
  1576.  
  1577.  
  1578.   createbbuf   buffer line1 line2 ...
  1579.   ──────────────────────────────────────────────────────────────────────
  1580.   remarks:     This function creates a new binary buffer with the
  1581.                bufferid 'buffer'. By default, when a binary buffer is
  1582.                saved, line delimiter characters are not appended to the
  1583.                end of each line.
  1584.  
  1585.                This function is almost identical to the 'createbuf'
  1586.                function, except that a binary buffer is created (see
  1587.                'createbuf').
  1588.  
  1589.   returns:     The new bufferid if successful, otherwise null.
  1590.   see also:    asciibuf, buffer?, createbuf, destroybuf, loadbuf, menu
  1591.  
  1592.  
  1593.   createcursor  cursor buffer
  1594.   ──────────────────────────────────────────────────────────────────────
  1595.   remarks:     This function creates a new cursor. If the specified
  1596.                cursor already exists, this function will fail. If
  1597.                'cursor' is null or not specified, a unique cursorid will
  1598.                be assigned. If 'buffer' is null or not specified, the
  1599.                current buffer is assumed.
  1600.  
  1601.                The new cursor will become the current cursor for the
  1602.                buffer.
  1603.  
  1604.   returns:     Non-zero if successful, otherwise zero.
  1605.   see also:    cursor?, destroycursor, setcursor
  1606.  
  1607.  
  1608.   createdir    path
  1609.   ──────────────────────────────────────────────────────────────────────
  1610.   remarks:     Creates a new directory specified by 'path'. Only one
  1611.                directory in the path can be created at a time.
  1612.   returns:     Non-zero if successful, otherwise zero.
  1613.   see also:    directory?, file?, locatefile
  1614.  
  1615.  
  1616.   createfold   opt=[c] row buffer
  1617.   ──────────────────────────────────────────────────────────────────────
  1618.   remarks:     Creates a one-line text fold. If 'buffer' is null or not
  1619.                specified, then the current buffer is assumed. If 'row'
  1620.                is not specified, then the line at the cursor is assumed.
  1621.                If option 'c' is specified, the fold is created 'closed',
  1622.                otherwise the fold is created 'open'.
  1623.  
  1624.   returns:     non-zero if successful, otherwise null.
  1625.  
  1626.   see also:    closefold, destroyfold, foldblock, foldline, getfold,
  1627.                openfold
  1628.  
  1629.   example:     createfold
  1630.                  // creates an open fold on the current line in
  1631.                  //   the current buffer
  1632.  
  1633.  
  1634.   createobject  object parent1 parent2 ...
  1635.   ──────────────────────────────────────────────────────────────────────
  1636.   remarks:     Creates a new object. If 'object' is not specified, a
  1637.                unique object name will be assigned. If the inheritance
  1638.                path 'parent1 parent2 ...' is specified, then the object
  1639.                will inherit public functions and object variables from
  1640.                the objects 'parent1', 'parent2', etc.
  1641.  
  1642.                This function can be used to create objects dynamically.
  1643.                Unlike the 'object' statement, this function does not
  1644.                modify the current object.
  1645.  
  1646.   returns:     the new objectid if successful, otherwise null.
  1647.   see also:    destroyobject, loadobject, object, object?, setobjtype
  1648.  
  1649.  
  1650.   createwindow  window
  1651.   ──────────────────────────────────────────────────────────────────────
  1652.   remarks:     Creates a new window.  If 'window' is null or not
  1653.                specified, a unique windowid will be assigned. The new
  1654.                window will become the current window.
  1655.  
  1656.                The new window will be sized to cover the entire physical
  1657.                screen and will not have any borders or frame controls.
  1658.                To add frame controls to the window, see the 'setframe'
  1659.                function. To change the border size and style, see the
  1660.                'setborder' function.
  1661.  
  1662.                The window event object will be set to the current
  1663.                (executing) object. To change the window event object,
  1664.                see the 'setwinobj' function.
  1665.  
  1666.                This function can be used to create simple video output
  1667.                windows, or windows that display buffers.
  1668.  
  1669.   returns:     The new windowid if successful, otherwise null.
  1670.   see also:    destroywindow, setwinobj, window?
  1671.  
  1672.   example:     createwindow                // create a new window
  1673.                setframe "b"                // add borders
  1674.                setborder "1i"              // set the border style
  1675.                setcolor  0  127            // set border color
  1676.                setcolor  5  112            // set text color
  1677.                settitle "Hello World!"     // set window title
  1678.                sizewindow 6 5 72 20 "ad"   // size the window
  1679.                setshadow 2 1               // add shadows to the window
  1680.  
  1681.  
  1682.   currbook     bookmark
  1683.   ──────────────────────────────────────────────────────────────────────
  1684.   remarks:     Makes the specified bookmark the current bookmark by
  1685.                moving it to the top of the bookmark list in the current
  1686.                buffer.
  1687.   returns:     TRUE if successful, otherwise null.
  1688.   see also:    getcurrbook
  1689.  
  1690.  
  1691.   currbuf      buffer
  1692.   ──────────────────────────────────────────────────────────────────────
  1693.   remarks:     Makes the specified buffer the current buffer by moving
  1694.                it to the top of the buffer list.
  1695.   returns:     nothing
  1696.   see also:    getcurrbuf, gotobuf
  1697.  
  1698.  
  1699.   currcursor   cursor
  1700.   ──────────────────────────────────────────────────────────────────────
  1701.   remarks:     Makes the specified cursor the current cursor by moving
  1702.                it to the top of the cursor list in the current buffer.
  1703.   returns:     TRUE if successful, otherwise null.
  1704.   see also:    getcurrcurs
  1705.  
  1706.  
  1707.   currdesk                                                      [Lib][a]
  1708.   ──────────────────────────────────────────────────────────────────────
  1709.   remarks:     Sets the 'current' desktop to the current window layout
  1710.                on the screen. The current desktop can be restored later
  1711.                with the 'restoredesk' function, or saved to a file with
  1712.                the 'savedesk' function.
  1713.   returns:     nothing
  1714.   see also:    begdesk, enddesk, opendesk, openhistory, restoredesk,
  1715.                savedesk
  1716.  
  1717.  
  1718.   currmark     mark
  1719.   ──────────────────────────────────────────────────────────────────────
  1720.   remarks:     Makes the specified mark the current mark by moving it to
  1721.                the top of the mark list in the current buffer. Marks at
  1722.                the top of the mark list have higher priority when
  1723.                displayed on the screen.
  1724.   returns:     TRUE if successful, otherwise null.
  1725.   see also:    getcurrmark
  1726.  
  1727.  
  1728.   currpath     path
  1729.   ──────────────────────────────────────────────────────────────────────
  1730.   remarks:     Changes the current Dos path to 'path' for the disk drive
  1731.                specified in 'path'.
  1732.   returns:     Non-zero if successful, otherwise zero.
  1733.   see also:    getcurrpath
  1734.  
  1735.   example:     currpath "d:\\abc"
  1736.                  // changes the current path for the D drive to 'abc'
  1737.  
  1738.  
  1739.   currwin      window                                           [Lib][a]
  1740.   ──────────────────────────────────────────────────────────────────────
  1741.   remarks:     Brings the specified window to the top of the screen and
  1742.                makes it the current window.
  1743.   returns:     nothing
  1744.   see also:    getcurrwin
  1745.  
  1746.  
  1747.   cursor?      cursor
  1748.   ──────────────────────────────────────────────────────────────────────
  1749.   remarks:     Tests if a cursor exists. If 'cursor' is null or not
  1750.                specified, then the current cursor for the current buffer
  1751.                is assumed.
  1752.   returns:     TRUE if the cursor exists, otherwise null.
  1753.   see also:    createcursor, cursor?, destroycursor, setcursor
  1754.  
  1755.  
  1756.   cursorsize   overtop overbot instop insbot
  1757.   ──────────────────────────────────────────────────────────────────────
  1758.   remarks:     Sets the physical cursor size for insert and overstrike
  1759.                modes in windows which display a buffer. 'overtop' and
  1760.                'overbot' specify the cursor top and bottom in overstrike
  1761.                mode. 'instop' and 'insbot' specify the cursor top and
  1762.                bottom in insert mode.
  1763.  
  1764.                The cursor top and bottom must be numbers from 0 to 99
  1765.                and indicate the distance of the top and bottom of the
  1766.                cursor from the top of the character cell, on a scale of
  1767.                0 to 99.
  1768.  
  1769.   returns:     nothing
  1770.   see also:    hidecursor, showcursor
  1771.  
  1772.  
  1773.   defext       filename extension                               [Ext][a]
  1774.   ──────────────────────────────────────────────────────────────────────
  1775.   remarks:     Appends the default extension 'extension' to the
  1776.                specified filename if the filename has no extension.
  1777.  
  1778.   returns:     a filename with the default extension.
  1779.   see also:    forceext
  1780.  
  1781.   example:     defext "file" "doc"          // returns 'file.doc'
  1782.                defext "file.txt" "doc"      // returns 'file.txt'
  1783.                defext "file." "doc"         // returns 'file.'
  1784.  
  1785.  
  1786.   delay        milliseconds
  1787.   ──────────────────────────────────────────────────────────────────────
  1788.   remarks:     Suspends execution of the editor for the specified number
  1789.                of milliseconds.
  1790.  
  1791.   returns:     nothing
  1792.   see also:    beep, halt, system
  1793.  
  1794.   example:     delay 1000            // delay for 1 second
  1795.  
  1796.  
  1797.   delchar      count col row buffer
  1798.   ──────────────────────────────────────────────────────────────────────
  1799.   remarks:     Deletes text on a line in a buffer. If 'buffer' is null
  1800.                or not specified, then the current buffer is assumed.
  1801.  
  1802.                The text at the specified 'col' and 'row' are deleted. If
  1803.                'col' are 'row' are not specified, the text at the cursor
  1804.                is deleted. 'count' specifies the number of characters to
  1805.                delete. If 'count' is not specified, 1 is assumed.
  1806.  
  1807.   returns:     TRUE if successful, otherwise null.
  1808.   see also:    instext, ovltext, text
  1809.  
  1810.   example:     delchar
  1811.                  // deletes the character at the cursor in the
  1812.                  //   current buffer
  1813.                delchar 4
  1814.                  // deletes 4 characters at the cursor in the
  1815.                  //   current buffer
  1816.                delchar 1 5 20 "abc"
  1817.                  // deletes the character at column 5, line 20
  1818.                  //   in the buffer "abc"
  1819.  
  1820.  
  1821.   deleteblock  mark
  1822.   ──────────────────────────────────────────────────────────────────────
  1823.   remarks:     Deletes marked text and destroys the mark. If 'mark' is
  1824.                not specified, the default markid is assumed.
  1825.   returns:     TRUE if successful, otherwise null.
  1826.   see also:    copyblock
  1827.  
  1828.  
  1829.   deletefile   filename
  1830.   ──────────────────────────────────────────────────────────────────────
  1831.   remarks:     Deletes the specified filename. 'filename' may also
  1832.                specify an empty directory.
  1833.   returns:     TRUE if successful, otherwise null.
  1834.   see also:    copyfile, renamefile
  1835.  
  1836.  
  1837.   deletewin                                                     [Lib][a]
  1838.   ──────────────────────────────────────────────────────────────────────
  1839.   remarks:     Deletes the current window. For edit windows, the buffer
  1840.                in the window is not destroyed.
  1841.   returns:     nothing
  1842.   see also:    close
  1843.  
  1844.  
  1845.   delline      count row buffer
  1846.   ──────────────────────────────────────────────────────────────────────
  1847.   remarks:     Deletes a line or lines in a buffer. If 'buffer' is null
  1848.                or not specified, the current buffer is assumed.
  1849.  
  1850.                If 'row' is specified, lines are deleted starting with
  1851.                'row', otherwise lines are deleted at the cursor. 'count'
  1852.                specifies the number of lines to delete. If 'count' is
  1853.                not specified, 1 is assumed.
  1854.  
  1855.   returns:     the line number of the line deleted if successful,
  1856.                otherwise null.
  1857.  
  1858.   see also:    addline, insabove, insline, joinline, splitline
  1859.  
  1860.   example:     delline
  1861.                  // deletes the line at cursor in the current buffer
  1862.                delline 4
  1863.                  // deletes the line at cursor and 3 lines below
  1864.                  //   it in the current buffer
  1865.                delline 1 1 "abc"
  1866.                  // deletes the first line in the buffer "abc"
  1867.  
  1868.                if delline > getrow then 
  1869.                  // deletes the current line and tests if it was the
  1870.                  //   last line
  1871.                 :
  1872.                end 
  1873.  
  1874.  
  1875.   destroybook  bookmark
  1876.   ──────────────────────────────────────────────────────────────────────
  1877.   remarks:     Destroys a bookmark created with the 'setbook' function.
  1878.                If 'bookmark' is not specified, the current bookmark is
  1879.                assumed.
  1880.   returns:     TRUE if successful, otherwise null.
  1881.   see also:    setbook
  1882.  
  1883.  
  1884.   destroybuf   buffer
  1885.   ──────────────────────────────────────────────────────────────────────
  1886.   remarks:     Destroys a buffer, If 'buffer' is null or not specified,
  1887.                then the current buffer is destroyed. All windows,
  1888.                cursors, bookmarks, and marks associated with the buffer
  1889.                will also be destroyed. The previous buffer in the buffer
  1890.                list will become the current buffer.
  1891.   returns:     nothing
  1892.   see also:    createbbuf, createbuf, loadbuf
  1893.  
  1894.  
  1895.   destroycursor  cursor
  1896.   ──────────────────────────────────────────────────────────────────────
  1897.   remarks:     Destroys the specified cursor, and any window in which
  1898.                the cursor is displayed. If 'cursor' is not specified,
  1899.                then the current cursor in the current buffer is
  1900.                destroyed. If the buffer contains more than one cursor,
  1901.                the next cursor in the cursor list will become the
  1902.                current cursor.
  1903.   returns:     TRUE if successful, otherwise null.
  1904.   see also:    getcurswin, setcursor
  1905.  
  1906.  
  1907.   destroyfold  opt=[s] row buffer
  1908.   ──────────────────────────────────────────────────────────────────────
  1909.   remarks:     Destroys a closed fold. If 'buffer' is null or not
  1910.                specified, then the current buffer is assumed. If 'row'
  1911.                is not specified, then the line at the cursor is assumed.
  1912.                If option 's' is specified, all closed subfolds within
  1913.                the fold are also destroyed.
  1914.  
  1915.   returns:     the number of folds destroyed
  1916.  
  1917.   see also:    closefold, createfold, foldblock, foldline, getfold,
  1918.                openfold
  1919.  
  1920.   example:     destroyfold
  1921.                  // destroys the closed fold at the current line in the
  1922.                  //   current buffer, leaving subfolds intact
  1923.  
  1924.  
  1925.   destroymark  mark
  1926.   ──────────────────────────────────────────────────────────────────────
  1927.   remarks:     Destroys a mark created with the markline, markcolumn,
  1928.                markchar, markstream, or copymark functions. The text
  1929.                within the mark is not affected. If 'mark' is not
  1930.                specified, the default markid is assumed.
  1931.   returns:     TRUE if successful, otherwise null.
  1932.   see also:    copymark, markchar, markcolumn, markline, markstream
  1933.  
  1934.  
  1935.   destroyobject  object
  1936.   ──────────────────────────────────────────────────────────────────────
  1937.   remarks:     Destroys the specified object. If 'object' is not
  1938.                specified, the current object is assumed.
  1939.  
  1940.                If possible, the object is destroyed immediately,
  1941.                otherwise the object will be destroyed when it is no
  1942.                longer referenced.
  1943.  
  1944.   returns:     TRUE if the object is destroyed immediately, otherwise
  1945.                null.
  1946.  
  1947.   see also:    createobject, loadobject, object, object?, resident,
  1948.                runmacro
  1949.  
  1950.  
  1951.   destroytimer  timerid
  1952.   ──────────────────────────────────────────────────────────────────────
  1953.   remarks:     Stops and destroys the timer identified by 'timerid'.
  1954.                This function will destroy both interval and alarm
  1955.                timers.
  1956.   returns:     nothing
  1957.   see also:    setalarm, settimer, timer?
  1958.  
  1959.  
  1960.   destroyvar   variable object
  1961.   ──────────────────────────────────────────────────────────────────────
  1962.   remarks:     Destroys the public object variable defined by 'variable'
  1963.                in the specified object. If 'object' is not specified,
  1964.                then the current object is assumed.
  1965.  
  1966.   returns:     nothing
  1967.   see also:    function?, lookup, set, variable?
  1968.  
  1969.   example:     destroyvar "TempVar"
  1970.                destroyvar "Temp" + "Var" "edit"
  1971.  
  1972.  
  1973.   destroywindow  window
  1974.   ──────────────────────────────────────────────────────────────────────
  1975.   remarks:     Destroys a window and removes it from the screen. If
  1976.                'window' is null or not specified, then the current
  1977.                window is destroyed. Any child windows of 'window' are
  1978.                also destroyed. The previous window in the window list
  1979.                will become the current window.
  1980.   returns:     nothing
  1981.   see also:    createwindow, window?
  1982.  
  1983.  
  1984.   dialog       title width height opt=[cp] object               [Lib][a]
  1985.   ──────────────────────────────────────────────────────────────────────
  1986.   remarks:     Creates a main dialog box window to which dialog box
  1987.                controls may be added. The new dialog box becomes the
  1988.                current window and the 'current' dialog box. The
  1989.                following parameters may be specified:
  1990.  
  1991.                title   - the dialog box title
  1992.                width   - the dialog box width
  1993.                height  - the dialog box height
  1994.                object  - the name of an object to be notified when
  1995.                          dialog box events occur
  1996.  
  1997.                The following options may also be specified:
  1998.  
  1999.                  c - center the dialog box title (if this option is not
  2000.                      specified, the title is left-justified)
  2001.                  p - remember the dialog box position after closing (if
  2002.                      this option is not specified, the dialog box will
  2003.                      be centered)
  2004.  
  2005.   returns:     The dialog box window id.
  2006.   see also:    button, field, getdialog, groupbox, listbox, showdialog
  2007.  
  2008.   example:     dialog "Test Dialog Box" 40 5   // create a dialog box
  2009.                getdialog                       // display the dialog box
  2010.  
  2011.  
  2012.   dir?         filespec                                         [Lib][a]
  2013.   ──────────────────────────────────────────────────────────────────────
  2014.   remarks:     Tests if 'filespec' specifies a directory.
  2015.  
  2016.   returns:     TRUE if filespec specifies a directory, otherwise null.
  2017.  
  2018.   example:     dir? "file.txt"      // returns null
  2019.                dir? "*.txt"         // returns true
  2020.                dir? "c:"            // returns true
  2021.  
  2022.  
  2023.   directory?   directory path
  2024.   ──────────────────────────────────────────────────────────────────────
  2025.   remarks:     Tests for the existence of a directory in the specified
  2026.                path. This function is identical to the locatefile
  2027.                function when option 'd' is specified (see 'locatefile').
  2028.   returns:     The fully qualified directory if found, otherwise null.
  2029.   see also:    file?, locatefile
  2030.  
  2031.  
  2032.   dispatch 
  2033.   ──────────────────────────────────────────────────────────────────────
  2034.   remarks:     This function reads the next event from the event queue
  2035.                and 'dispatches' it by calling a user-defined event
  2036.                handling function associated with the event. If no events
  2037.                are on the queue, this function waits for an event to
  2038.                appear on the queue.
  2039.   returns:     TRUE if the 'endprocess' function was not called in the
  2040.                user event-handling function, otherwise null.
  2041.   see also:    endprocess, process
  2042.  
  2043.  
  2044.   display      opt=[f]
  2045.   ──────────────────────────────────────────────────────────────────────
  2046.   remarks:     Updates the display. Any windows, buffers, and marks, and
  2047.                cursors which have been modified are redrawn.
  2048.  
  2049.                Specifying option 'f' forces the entire display to be
  2050.                redrawn (the background, all windows, etc.), even if
  2051.                nothing has been modified within the editor. This can be
  2052.                used to restore the display after another program,
  2053.                utility, or Dos command has overwritten it.
  2054.  
  2055.   returns:     TRUE if the display was updated, otherwise null.
  2056.   see also:    setdisplay
  2057.  
  2058.  
  2059.   down         rows buffer
  2060.   ──────────────────────────────────────────────────────────────────────
  2061.   remarks:     Moves the cursor downward. 'rows' specifies the number of
  2062.                lines to move. If 'rows' is not specified, 1 is assumed.
  2063.                If 'buffer' is null or not specified, the current buffer
  2064.                is assumed.
  2065.  
  2066.   returns:     the new cursor line number if successful, otherwise null.
  2067.   see also:    left, right, up
  2068.  
  2069.   example:     down       // moves the cursor down 1 row
  2070.                down 5     // moves the cursor down 5 rows
  2071.  
  2072.  
  2073.   enddesk                                                       [Lib][a]
  2074.   ──────────────────────────────────────────────────────────────────────
  2075.   remarks:     Marks the end of a series of window 'close' calls which
  2076.                add the closed window to the current desktop.
  2077.   returns:     nothing
  2078.   see also:    begdesk
  2079.  
  2080.  
  2081.   endprocess 
  2082.   ──────────────────────────────────────────────────────────────────────
  2083.   remarks:     Posts a special internal 'quit' event to the event queue.
  2084.                When the editor processes this event, the current editor
  2085.                'process' is terminated, and the editor returns to the
  2086.                previous process (or to Dos if there is no previous
  2087.                process). The internal 'quit' event forces the 'dispatch'
  2088.                function to return null, and the 'process' function call
  2089.                to return.
  2090.  
  2091.   returns:     TRUE if successful, otherwise null.
  2092.   see also:    dispatch, process
  2093.  
  2094.  
  2095.   eotstring    titleid window
  2096.   ──────────────────────────────────────────────────────────────────────
  2097.   remarks:     Sets the end-of-text line for a window which displays a
  2098.                buffer to a window title previously set with the
  2099.                'settitle' function. If 'window' is not specified, the
  2100.                current window is assumed.
  2101.  
  2102.                'titleid' specifies which one of the 5 window titles
  2103.                should be used. The title should be hidden with settitle
  2104.                option 'z' (see 'settitle').
  2105.  
  2106.                If 'titleid' is not specified, then the end-of-text line
  2107.                is removed. If 'titleid' is -1, then the end-of-text line
  2108.                defaults to: "≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡".
  2109.  
  2110.   returns:     nothing
  2111.   see also:    gettitle, settitle
  2112.  
  2113.   example:     eotstring
  2114.                  // removes the end-of-text line in the current window
  2115.                eotstring -1
  2116.                  // sets the end-of-text line to
  2117.                  //   '≡≡≡≡≡≡ End of Text ≡≡≡≡≡≡'
  2118.  
  2119.  
  2120.   erasekey     opt=[a]                                          [Lib][a]
  2121.   ──────────────────────────────────────────────────────────────────────
  2122.   remarks:     Erases the current scrap key macro. If option 'a' is
  2123.                specified, all current key macros are erased.
  2124.   returns:     TRUE if successful, otherwise null.
  2125.   see also:    openkey, playkey, savekey, setting
  2126.  
  2127.  
  2128.   eval         string object
  2129.   ──────────────────────────────────────────────────────────────────────
  2130.   remarks:     Compiles and evaluates a macro language source code
  2131.                string in the specified object. If 'object' is not
  2132.                specified, the current object is assumed. This function
  2133.                can also evaluate compiled expressions.
  2134.  
  2135.                Note that local and global variables defined outside of
  2136.                the scope of the eval string are not accessible from
  2137.                within the 'eval' function.
  2138.  
  2139.   returns:     The result of evaluating the macro source string. The
  2140.                'geterror' function can also be called to return an error
  2141.                code. The error code is zero if the string compiled
  2142.                successfully.
  2143.  
  2144.   see also:    compilemacro, geterror, runmacro
  2145.  
  2146.   example:     eval "beep 700 300"            // beeps the speaker
  2147.                a = 40
  2148.                x = eval '3 + ' + a [1]        // x is '7'
  2149.  
  2150.  
  2151.   event? 
  2152.   ──────────────────────────────────────────────────────────────────────
  2153.   remarks:     Test if one or more events are currently in the event
  2154.                queue, including keyboard, mouse, and user-defined
  2155.                events.
  2156.   returns:     TRUE if an event is in the queue, otherwise null.
  2157.   see also:    geteventcount, keyhit?, shiftkey?
  2158.  
  2159.  
  2160.   extendmark   col row mark
  2161.   ──────────────────────────────────────────────────────────────────────
  2162.   remarks:     Extends a mark to the position defined by 'col','row'. If
  2163.                'col' and 'row' are not specified then the current cursor
  2164.                position is assumed. If 'mark' is not specified, the
  2165.                default markid is assumed.
  2166.   returns:     nothing
  2167.   see also:    markchar, markcolumn, markline, markstream, stopmark
  2168.  
  2169.  
  2170.   fbreak                                                     [Lib][fmgr]
  2171.   ──────────────────────────────────────────────────────────────────────
  2172.   remarks:     Breaks out of the current 'fcommand' call.
  2173.   returns:     nothing
  2174.   see also:    fcommand
  2175.  
  2176.  
  2177.   fcommand     function arg1 arg2 ...                        [Lib][fmgr]
  2178.   ──────────────────────────────────────────────────────────────────────
  2179.   remarks:     Calls the specified function once for each marked file in
  2180.                the current file manager window. If no files are marked,
  2181.                the function is called only once for the file or
  2182.                directory at the current line in the file manager. The
  2183.                function is called in the current event object.
  2184.  
  2185.                The fully qualified file name and the arguments 'arg1',
  2186.                'arg2', etc. are passed to the function in following
  2187.                order: filename arg1 arg2 ...
  2188.  
  2189.   returns:     nothing
  2190.   see also:    fbreak, fmark, fmark?
  2191.  
  2192.   example:     fcommand "setfileattr" attribute
  2193.                  // calls the function 'setfileattr' (passing the value
  2194.                  //   of the variable 'attribute') in the current event
  2195.                  //   object for all marked files in the current
  2196.                  //   file manager window
  2197.  
  2198.  
  2199.   fgetfile                                                   [Lib][fmgr]
  2200.   ──────────────────────────────────────────────────────────────────────
  2201.   remarks:     Gets the fully qualified file or directory name at the
  2202.                current line in the current file manager window.
  2203.   returns:     a fully qualified file or directory name.
  2204.  
  2205.  
  2206.   fgetopt                                                    [Lib][fmgr]
  2207.   ──────────────────────────────────────────────────────────────────────
  2208.   remarks:     Retrieves the file manager options of the current file
  2209.                manager window.
  2210.   returns:     the current file manager option settings
  2211.   see also:    fgetsort
  2212.  
  2213.  
  2214.   fgetsort                                                   [Lib][fmgr]
  2215.   ──────────────────────────────────────────────────────────────────────
  2216.   remarks:     Retrieves the sort order of the current file manager
  2217.                window as a one character string (n/s/d/e/o).
  2218.   returns:     the current file manager sort order
  2219.   see also:    fgetopt, fsort
  2220.  
  2221.  
  2222.   field        title x y width initvalue history                [Lib][a]
  2223.   ──────────────────────────────────────────────────────────────────────
  2224.   remarks:     Adds an edit field window control to the current dialog
  2225.                box. The edit field window becomes the current window.
  2226.                The following parameters may be specified:
  2227.  
  2228.                title     - the edit field title or prompt. If the last
  2229.                            character of the title is '>', the title will
  2230.                            be displayed to the left of the edit field,
  2231.                            otherwise the title will be displayed above
  2232.                            the edit field.
  2233.                x         - the edit field x-position in the dialog box
  2234.                y         - the edit field y-position in the dialog box
  2235.                width     - the edit field width
  2236.                initvalue - the initial value (if any) to be placed in
  2237.                            the edit field
  2238.                history   - the history buffer (if any) to be associated
  2239.                            with the edit field
  2240.  
  2241.   returns:     The edit field window id.
  2242.   see also:    button, dialog, groupbox, listbox, whenenter
  2243.  
  2244.   example:     dialog "Test Dialog Box" 40 5
  2245.                  // create a dialog box
  2246.                field "Enter string: " 18 2 8 "inital value"
  2247.                  // add an edit field control
  2248.                getdialog
  2249.                  // display the dialog box
  2250.  
  2251.  
  2252.   file?        file path
  2253.   ──────────────────────────────────────────────────────────────────────
  2254.   remarks:     Tests for the existence of a file in the specified path.
  2255.                This function is identical to the locatefile function
  2256.                when option 'f' is specified (see 'locatefile').
  2257.   returns:     The fully qualified file if found, otherwise null.
  2258.   see also:    directory?, locatefile
  2259.  
  2260.  
  2261.   fileattr?    filename attributes=[adhrsv]
  2262.   ──────────────────────────────────────────────────────────────────────
  2263.   remarks:     Tests if 'filename' has the specified file attributes.
  2264.                Any combination of the following attributes can be
  2265.                specified:
  2266.  
  2267.                  a - archive
  2268.                  d - directory
  2269.                  h - hidden
  2270.                  r - read only
  2271.                  s - system
  2272.                  v - volume
  2273.  
  2274.   returns:     Non-zero if any of the specified attributes are present,
  2275.                otherwise null.
  2276.   see also:    getfileattr, setfileattr
  2277.  
  2278.   example:     if fileattr? "c:\\file.txt" 'r' then   // test for
  2279.                  say "Read Only!"                     // read-only file
  2280.                else                                   // before saving
  2281.                  savebuf "c:\\file.txt"
  2282.                end 
  2283.  
  2284.  
  2285.   filelist                                                      [Lib][a]
  2286.   ──────────────────────────────────────────────────────────────────────
  2287.   remarks:     Displays a popup menu of buffers which have not been
  2288.                'hidden'. Selecting a buffer will make it the current
  2289.                buffer and display it in the current edit window. The
  2290.                buffer previously displayed in the edit window will not
  2291.                be destroyed.
  2292.   returns:     the bufferid selected, or null if nothing was selected.
  2293.   see also:    nextfile, prevfile
  2294.  
  2295.  
  2296.   filepos      position opt=[ace] handle
  2297.   ──────────────────────────────────────────────────────────────────────
  2298.   remarks:     Changes the current position in the open file specified
  2299.                by 'handle'. If a file handle is not specified, then the
  2300.                file handle returned from the most recent openfile call
  2301.                is assumed.
  2302.  
  2303.                The new position depends on the value of 'position', the
  2304.                current position, and the options specified. One of the
  2305.                following options may be specified:
  2306.  
  2307.                  a - the position is an absolute position in the file (1
  2308.                      is the first position)
  2309.                  c - the position is an offset from the current position
  2310.                  e - the position is an offset from the end of the file.
  2311.  
  2312.                If no options are specified, then 'a' is assumed.
  2313.  
  2314.   returns:     The new absolute position in the file (1 is the first
  2315.                position) if successful, otherwise null.
  2316.   see also:    closefile, openfile, readfile, writefile
  2317.  
  2318.  
  2319.   fillblock    string mark
  2320.   ──────────────────────────────────────────────────────────────────────
  2321.   remarks:     Fills a mark with the specified string. If 'string' is
  2322.                not specified, a single blank is assumed. If 'mark' is
  2323.                not specified, the default markid is assumed.
  2324.  
  2325.   returns:     TRUE if successful, otherwise null.
  2326.   see also:    copystr
  2327.  
  2328.  
  2329.   fillrect     length height char col row
  2330.   ──────────────────────────────────────────────────────────────────────
  2331.   remarks:     Fills a rectangular area in the current video window with
  2332.                the specified character. 'length' and 'height' specify
  2333.                the dimensions of the rectangular area. 'col' and 'row'
  2334.                specify the upper left corner of the rectangle. If 'col'
  2335.                and 'row' are not specified, the current cursor position
  2336.                is assumed.
  2337.  
  2338.   returns:     nothing
  2339.   see also:    gotoscreen, hilite, writeline, writestr
  2340.  
  2341.   example:     xd = getcoord 'x1'
  2342.                yd = getcoord 'y1'
  2343.                hilite xd yd (getcolor text_color) 1 1
  2344.                fillrect xd yd ' ' 1 1
  2345.                  // clear the current video window (fill with blanks)
  2346.  
  2347.  
  2348.   find         searchstring opt=[abfgilnorswx*[~] mark buffer
  2349.   ──────────────────────────────────────────────────────────────────────
  2350.   remarks:     Searches for the specified search string in a buffer,
  2351.                mark, or line. If 'buffer' is not specified, the current
  2352.                buffer is assumed.
  2353.  
  2354.                Various combinations of the following search options may
  2355.                be specified:
  2356.  
  2357.                  a - find all occurrences
  2358.                  b - limit the search to the specified mark
  2359.                  f - search for closed text folds
  2360.                  g - start the search from the beginning or end of the
  2361.                      buffer, mark, or line
  2362.                  i - ignore case during the search
  2363.                  l - limit the search to the current line
  2364.                  n - prevent the cursor position from being updated
  2365.                  o - search for open text folds
  2366.                  r - search in reverse towards the beginning of the
  2367.                      buffer, rather than towards the end of the buffer
  2368.                  s - skip closed text folds
  2369.                  w - search for 'whole words' only
  2370.                  x - check for regular expression characters in the
  2371.                      search string (see Regexp.dox).
  2372.                  * - force the search to begin at the current cursor
  2373.                      position instead of the next character position
  2374.                  [ - search for the first character also found in the
  2375.                      search string. Character ranges can be specified
  2376.                      (a-zA-Z, etc.)
  2377.                  ~ - search for the first character not found in the
  2378.                      search string. Character ranges can be specified
  2379.                      (a-zA-Z, etc.)
  2380.  
  2381.                If the string is found, and options 'a' and 'n' are not
  2382.                specified, then the cursor is moved to the beginning of
  2383.                the matched string, otherwise the cursor does not move.
  2384.  
  2385.   returns:     If option 'a' is specified, the number of occurrences
  2386.                found is returned, otherwise the length of the matched
  2387.                string is returned. If nothing is found, then null is
  2388.                returned.
  2389.  
  2390.   see also:    replace, search
  2391.  
  2392.   example:     find "apples"
  2393.                  // searches for the string 'apples' (case sensitive)
  2394.                  //   starting at one char to the right of the cursor
  2395.                  //   and searching toward the end of the buffer
  2396.                find "apples" "*ir"
  2397.                  // searches for 'apples' (case insensitive) starting at
  2398.                  //   the cursor position and searching toward the
  2399.                  //   beginning of the buffer
  2400.                find "apples" "bgw"
  2401.                  // searches for 'apples' (whole words only), limiting
  2402.                  //   the search to the current mark and starting from
  2403.                  //   the beginning of the mark
  2404.                find "{apples}|{oranges}" "agx"
  2405.                  // returns the total number of occurrences of the
  2406.                  //   strings 'apples' and 'oranges' (using regular
  2407.                  //   expressions) in the current buffer. The cursor is
  2408.                  //   not moved.
  2409.                find "a-zA-Z" "[gl"
  2410.                  // Moves the cursor to the first alphabetic character
  2411.                  //   in the current line
  2412.                find "^ *$" "agx"
  2413.                  // Counts the number of blank lines in the current
  2414.                  //   buffer using regular expressions
  2415.  
  2416.  
  2417.   findbuf      buffername
  2418.   ──────────────────────────────────────────────────────────────────────
  2419.   remarks:     Finds the first buffer in the buffer list with the
  2420.                specified buffer name. A buffer name can be associated
  2421.                with a buffer by using the 'setbufname' function. For
  2422.                most ordinary editing buffers, the buffer name is usually
  2423.                a fully qualified file name.
  2424.  
  2425.   returns:     The first bufferid with specified name if successful,
  2426.                otherwise null.
  2427.   see also:    getcurrbuf, getprevbuf, setbufname
  2428.  
  2429.   example:     findbuf "c:\\file.txt"
  2430.                  // returns the bufferid of the buffer with the
  2431.                  //   name c:\file.txt
  2432.  
  2433.  
  2434.   flipcase     string
  2435.   ──────────────────────────────────────────────────────────────────────
  2436.   remarks:     Toggles the case of each character in the string.
  2437.   returns:     the 'flipcased' string.
  2438.   see also:    locase, upcase
  2439.   example:     flipcase "Oranges"             // returns "oRANGES"
  2440.  
  2441.  
  2442.   fmark        opt=[amu]                                     [Lib][fmgr]
  2443.   ──────────────────────────────────────────────────────────────────────
  2444.   remarks:     Marks or unmarks files in the current file manager
  2445.                window. The following options can be specified:
  2446.  
  2447.                  a - unmarks all files when specified with option 'u',
  2448.                      otherwise all files are marked.
  2449.                  m - marks the file or directory at the cursor. If
  2450.                      option 'a' is specified, all files are marked.
  2451.                  u - unmarks the file or directory at the cursor. If
  2452.                      option 'a' is specified, all files and directories
  2453.                      are unmarked.
  2454.  
  2455.                If no options are specified, the marked state of the
  2456.                current file or directory is toggled.
  2457.  
  2458.   returns:     nothing
  2459.   see also:    fbreak, fcommand, fmark?
  2460.  
  2461.   example:     fmark
  2462.                  // mark the file or directory at the cursor
  2463.                fmark "ma"
  2464.                  // mark all files
  2465.                fmark "ua"
  2466.                  // unmark all files and directories
  2467.  
  2468.  
  2469.   fmark?                                                     [Lib][fmgr]
  2470.   ──────────────────────────────────────────────────────────────────────
  2471.   remarks:     Tests if any files or directories are marked in the
  2472.                current file manager window.
  2473.   returns:     Non-zero if a file or directory is marked, otherwise
  2474.                null.
  2475.   see also:    fbreak, fcommand, fmark?
  2476.  
  2477.  
  2478.   fold?        opt=[contbsl] row buffer
  2479.   ──────────────────────────────────────────────────────────────────────
  2480.   remarks:     This function is a synonym for the 'getfold' function.
  2481.                Calling this function with no arguments is useful for
  2482.                testing whether or not a closed fold exists on the
  2483.                current line in the current buffer.
  2484.   returns:     see the 'getfold' function.
  2485.   see also:    getfold
  2486.  
  2487.  
  2488.   foldblock    opt=[cdkos] mark
  2489.   ──────────────────────────────────────────────────────────────────────
  2490.   remarks:     Manipulates folds within a mark. If 'mark' is not
  2491.                specified, the default markid is assumed. The following
  2492.                options may be specified:
  2493.  
  2494.                  c - Closes open folds in the mark. If option 's' is
  2495.                      also specified, all subfolds are also closed.
  2496.  
  2497.                  d - Destroys folds in the mark. The following options
  2498.                      may also be specified:
  2499.  
  2500.                        s - destroys subfolds
  2501.                        c - destroys closed folds
  2502.                        o - destroys open folds
  2503.  
  2504.                      If option 'd' is specified and options 'o' or 'c'
  2505.                      are not specified, then 'dco' is assumed.
  2506.  
  2507.                  k - Creates a fold spanning the mark. If option 'o' is
  2508.                      also specified, then the fold is created 'open',
  2509.                      otherwise the fold is created 'closed'.
  2510.  
  2511.                  o - Opens closed folds in the mark. If option 's' is
  2512.                      also specified, all subfolds are also opened.
  2513.  
  2514.                If no options are specified, then 'k' is assumed.
  2515.  
  2516.   returns:     the number of folds opened, closed, or destroyed.
  2517.  
  2518.   see also:    actualrow, apparentrow, closefold, createfold,
  2519.                destroyfold, fold?, getfold, openfold
  2520.  
  2521.   example:     foldblock
  2522.                  // creates a new closed fold spanning the default mark
  2523.                foldblock 'ds'
  2524.                  // destroys all open and closed folds and subfolds
  2525.                  //   in the default mark
  2526.                foldblock 'o'
  2527.                  // opens all top level closed folds in the default mark
  2528.                foldblock 'cs'
  2529.                  // closes all open folds and subfolds in the default
  2530.                  //   mark
  2531.  
  2532.  
  2533.   foldline     opt=[u]                                       [Ext][edit]
  2534.   ──────────────────────────────────────────────────────────────────────
  2535.   remarks:     Folds or unfolds the current line in the current buffer.
  2536.                If option 'u' is specified, the line is unfolded,
  2537.                otherwise the line is folded.
  2538.   returns:     nothing
  2539.  
  2540.   see also:    actualrow, apparentrow, closefold, createfold,
  2541.                destroyfold, fold?, foldblock, getfold, openfold
  2542.  
  2543.  
  2544.   foldoptions  opt=[lr] fillchar window
  2545.   ──────────────────────────────────────────────────────────────────────
  2546.   remarks:     Sets options for displaying closed folds. If 'window' is
  2547.                not specified, the current window is assumed. The
  2548.                following options may be specified:
  2549.  
  2550.                  l - attempt to display the fold size left-justified at
  2551.                      the end of the line.
  2552.  
  2553.                  r - attempt to display the fold size right-justified at
  2554.                      the right edge of the window
  2555.  
  2556.                If no options are specifed, then the fold size is not
  2557.                displayed.
  2558.  
  2559.                If 'fillchar' character is specified, then fold lines are
  2560.                padded with the specified fill character.
  2561.  
  2562.   returns:     nothing
  2563.   see also:    getfold
  2564.  
  2565.  
  2566.   forceext     filename extension                               [Ext][a]
  2567.   ──────────────────────────────────────────────────────────────────────
  2568.   remarks:     Forces a filename to have the specified extension.
  2569.   returns:     a filename with the specified extension.
  2570.   see also:    defext
  2571.  
  2572.   example:     forceext "file" "doc"        // returns 'file.doc'
  2573.                forceext "file.txt" "doc"    // returns 'file.doc'
  2574.  
  2575.  
  2576.   formatblock  leftmarg rightmarg opt=[kjr] mark
  2577.   ──────────────────────────────────────────────────────────────────────
  2578.   remarks:     Reformats marked text. If 'mark' is not specified, the
  2579.                default markid is assumed.
  2580.  
  2581.                For column marks, the text is reformatted to fit between
  2582.                the left and right edges of the mark. For all other
  2583.                marks, the text is reformatted to fit between 'leftmarg'
  2584.                and 'rightmarg'.
  2585.  
  2586.                Any combination of the following options may be
  2587.                specified:
  2588.  
  2589.                  j - the text is both left and right justified (blanks
  2590.                      are inserted to pad text to the right margin)
  2591.                  k - attempts to preserve spaces during the reformat
  2592.                  r - maintains the indenting relationship between the
  2593.                      first and second line of the text
  2594.  
  2595.   returns:     TRUE if successful, otherwise null.
  2596.   see also:    justblock
  2597.  
  2598.   example:     formatblock 5 50 "kr"
  2599.                  // reformats the text within a line mark to fit between
  2600.                  //   columns 5 and 50, preserving spaces and
  2601.                  //   maintaining the relationship between the first
  2602.                  //   and second lines in the mark.
  2603.  
  2604.  
  2605.   frame?       components window
  2606.   ──────────────────────────────────────────────────────────────────────
  2607.   remarks:     Tests if the specified window frame components are
  2608.                present. If 'window' is not specified, the current window
  2609.                is assumed. If no components are specified, all possible
  2610.                components are assumed.
  2611.  
  2612.                See the 'setframe' function for a list of window
  2613.                component options.
  2614.  
  2615.   returns:     Non-zero if any of the specified components are present.
  2616.   see also:    setframe
  2617.  
  2618.   example:     frame? "bn"
  2619.                  // returns non-zero if the current window has a
  2620.                  //   border or a north title bar
  2621.  
  2622.  
  2623.   fsort        opt=[ednos]                                   [Lib][fmgr]
  2624.   ──────────────────────────────────────────────────────────────────────
  2625.   remarks:     Sorts files and directories in the current file manager
  2626.                window. One of the following options can be specified:
  2627.  
  2628.                  d - sorts by date and time (descending order)
  2629.                  e - sorts by file extension
  2630.                  n - sorts by file name
  2631.                  o - arrange in the Dos default order
  2632.                  s - sorts by file size (descending order)
  2633.  
  2634.                If no options are specified, 'o' is assumed.
  2635.  
  2636.   returns:     nothing
  2637.   see also:    fgetopt, fgetsort, pickfile
  2638.  
  2639.   example:     fsort 'n'            // sort by file name
  2640.                fsort 's'            // sort by size (descending)
  2641.  
  2642.  
  2643.   fstatus                                                    [Lib][fmgr]
  2644.   ──────────────────────────────────────────────────────────────────────
  2645.   remarks:     Updates the status line of the current file manager
  2646.                window.
  2647.   returns:     nothing
  2648.  
  2649.  
  2650.   function?    function object
  2651.   ──────────────────────────────────────────────────────────────────────
  2652.   remarks:     Tests for the existence of a public function defined by
  2653.                'function' in the object defined by 'object'. If 'object'
  2654.                is not specified, then the current object is assumed. The
  2655.                inheritance hierarchy of the specified object may also be
  2656.                searched for the function.
  2657.  
  2658.   returns:     Non-zero if the function exists, otherwise null.
  2659.   see also:    destroyvar, lookup, set, variable?
  2660.  
  2661.   example:     function? "function?"
  2662.                  // returns non-zero
  2663.                function? "markword" "edit"
  2664.                  // tests if the 'markword' function is accessible
  2665.                  //   from within the object 'edit'
  2666.  
  2667.  
  2668.   fup                                                        [Lib][fmgr]
  2669.   ──────────────────────────────────────────────────────────────────────
  2670.   remarks:     Reloads the current file manager window with the parent
  2671.                directory of the currently displayed directory.
  2672.   returns:     TRUE if successful, otherwise null.
  2673.   see also:    open, reopen
  2674.  
  2675.  
  2676.   fupdate      file fmgroptions                              [Lib][fmgr]
  2677.   ──────────────────────────────────────────────────────────────────────
  2678.   remarks:     Updates the current file manager window without reloading
  2679.                the directory (as the reopen command does). If file
  2680.                manager options are not specified, the file manager
  2681.                options associated with the current window are used.
  2682.  
  2683.                If 'file' is specified, the current line is replaced with
  2684.                the specified file. If no file is specified, then the
  2685.                entire file manager window is updated.
  2686.  
  2687.   returns:     nothing
  2688.   see also:    fgetopt, reopen
  2689.  
  2690.  
  2691.   getattr      x y
  2692.   ──────────────────────────────────────────────────────────────────────
  2693.   remarks:     Gets the color at the specified x,y position in the
  2694.                current video output window. If x or y are not specified,
  2695.                the current video cursor position is assumed.
  2696.  
  2697.   returns:     the color at x,y
  2698.   see also:    fillrect, getstr, getx, gety, gotoxy, gotoscreen,
  2699.                hilite, writeline, writestr
  2700.  
  2701.  
  2702.   getbinarylen  buffer
  2703.   ──────────────────────────────────────────────────────────────────────
  2704.   remarks:     Gets the binary line length that was used to load a
  2705.                binary buffer. If 'buffer' is null or not specified, then
  2706.                the current buffer is assumed. This function can also be
  2707.                used to test if a buffer is a binary buffer.
  2708.  
  2709.   returns:     The line length associated with a binary buffer. If the
  2710.                buffer is not binary, then zero is returned.
  2711.  
  2712.   see also:    createbbuf, insertbuf, loadbuf
  2713.  
  2714.  
  2715.   getbookbuf   bookmark
  2716.   ──────────────────────────────────────────────────────────────────────
  2717.   remarks:     Retrieves the buffer associated with a bookmark. If
  2718.                'bookmark' is not specified, the current 'bookmark' in
  2719.                the current buffer is assumed.
  2720.   returns:     The bufferid associated with the bookmark if successful,
  2721.                otherwise null.
  2722.   see also:    getcurrbook
  2723.  
  2724.  
  2725.   getbootpath 
  2726.   ──────────────────────────────────────────────────────────────────────
  2727.   remarks:     Retrieves the editor 'boot' path. The boot path is the
  2728.                location of the editor .Exe file currently executing.
  2729.   returns:     The boot path.
  2730.   see also:    bootpath, setbootpath
  2731.  
  2732.  
  2733.   getborder    opt=[xyt] window
  2734.   ──────────────────────────────────────────────────────────────────────
  2735.   remarks:     Retrieves information about a window border. If 'window'
  2736.                is not specified, the current window is assumed. One of
  2737.                the following options can be specified:
  2738.  
  2739.                  x - returns the width of the left and right borders
  2740.                  y - returns the width of the top and bottom borders
  2741.                  t - returns the border type, See the 'setborder'
  2742.                      function for a description of border types.
  2743.  
  2744.   returns:     Information based on the options specified.
  2745.   see also:    setborder
  2746.  
  2747.  
  2748.   getbotwin 
  2749.   ──────────────────────────────────────────────────────────────────────
  2750.   remarks:     Gets the bottommost window on the screen.
  2751.   returns:     the windowid of the bottommost window on the screen
  2752.   see also:    getcurrwin
  2753.  
  2754.  
  2755.   getbufname   buffer
  2756.   ──────────────────────────────────────────────────────────────────────
  2757.   remarks:     Retrieves the descriptive name associated with a buffer.
  2758.                If 'buffer' is null or not specified, then the current
  2759.                buffer is assumed.
  2760.  
  2761.                A buffer name can be associated with a buffer by using
  2762.                the 'setbufname' function. For most ordinary editing
  2763.                buffers, the buffer name is usually a fully qualified
  2764.                file name.
  2765.  
  2766.   returns:     The descriptive name associated with a buffer.
  2767.   see also:    findbuf, setbufname
  2768.  
  2769.  
  2770.   getbuftabs   buffer
  2771.   ──────────────────────────────────────────────────────────────────────
  2772.   remarks:     Gets the tab width used for displaying real tabs. If
  2773.                'buffer' is not specified, the current buffer is assumed.
  2774.   returns:     the tab width
  2775.   see also:    setbuftabs
  2776.  
  2777.  
  2778.   getchar      col row buffer
  2779.   ──────────────────────────────────────────────────────────────────────
  2780.   remarks:     Retrieves the character at the specified column and row
  2781.                in the buffer 'buffer'. If 'buffer' is null or not
  2782.                specified, then the current buffer is assumed. If 'col'
  2783.                and 'row' are not specified, then the character at the
  2784.                cursor is retrieved. If the column is beyond the end of a
  2785.                line, null is returned.
  2786.  
  2787.   returns:     A one-character string if successful, otherwise null.
  2788.   see also:    getrealtext, gettext
  2789.  
  2790.   example:     getchar
  2791.                  // returns the character at the cursor in the
  2792.                  //   current buffer
  2793.                getchar 3 5
  2794.                  // returns the character at column 3, line 5 in the
  2795.                  //   current buffer
  2796.                getchar 1 1 "abc"
  2797.                  // returns the first character in the buffer "abc"
  2798.  
  2799.  
  2800.   getchild     window opt=[bt]
  2801.   ──────────────────────────────────────────────────────────────────────
  2802.   remarks:     Gets a child window for a window. If 'window' is not
  2803.                specified, the current window is assumed. The following
  2804.                options may be specified:
  2805.  
  2806.                  b - returns the bottommost child window
  2807.                  t - returns the topmost child window
  2808.  
  2809.   returns:     the windowid of the topmost or bottommost child window if
  2810.                successful, otherwise null.
  2811.  
  2812.   see also:    getparent, setnextwin, setparent, setprevwin
  2813.  
  2814.  
  2815.   getcol       buffer
  2816.   ──────────────────────────────────────────────────────────────────────
  2817.   remarks:     Gets the column position of the cursor. If 'buffer is
  2818.                null or not specified, the current buffer is assumed.
  2819.   returns:     The current cursor column position.
  2820.   see also:    getrow
  2821.  
  2822.  
  2823.   getcolor     component window
  2824.   ──────────────────────────────────────────────────────────────────────
  2825.   remarks:     Gets the color of a window component. If 'window' is not
  2826.                specified, the current window is assumed. See the
  2827.                'setcolor' function for 'component' values.
  2828.  
  2829.   returns:     the color of the specified window component.
  2830.   see also:    setcolor
  2831.  
  2832.   example:     getcolor 5
  2833.                  // returns the text color of the current window
  2834.                getcolor 6
  2835.                  // returns the mark color of the current window
  2836.  
  2837.  
  2838.   getcoord     opt=[ltrb1xyd] window
  2839.   ──────────────────────────────────────────────────────────────────────
  2840.   remarks:     Retrieves the coordinates and dimensions of a window. If
  2841.                'window' is not specified, the current window is assumed.
  2842.  
  2843.                The following options may be specified:
  2844.  
  2845.                  l - returns the virtual left edge of the window
  2846.                  t - returns the virtual top edge of the window
  2847.                  r - returns the virtual right edge of the window
  2848.                  b - returns the virtual bottom edge of the window
  2849.  
  2850.                  x - returns the window width (the width of the client
  2851.                      area if option '1' is specified)
  2852.                  y - returns the window height (the height of the client
  2853.                      area if option '1' is specified)
  2854.                  d - clip the height, width, or coordinate with the
  2855.                      visible portion of the display.
  2856.  
  2857.                  0 - returns a main window coordinate
  2858.                  1 - returns a client window coordinate. If not
  2859.                      specified, main window coordinates are assumed.
  2860.  
  2861.  
  2862.   returns:     Information based on the options specified.
  2863.   see also:    movewindow, sizewindow
  2864.  
  2865.   example:     getcoord "l"
  2866.                  // return the virtual coordinate of the left edge of
  2867.                  //   the current window
  2868.                getcoord "1xd"
  2869.                  // returns the visible width of the current window
  2870.                  //   client area on the screen
  2871.  
  2872.  
  2873.   getcurrbook  buffer
  2874.   ──────────────────────────────────────────────────────────────────────
  2875.   remarks:     Retrieves the current bookmark for the specified buffer.
  2876.                If 'buffer' is null or not specified, the current buffer
  2877.                is assumed.
  2878.   returns:     The current bookmarkid for a buffer.
  2879.   see also:    currbook
  2880.  
  2881.  
  2882.   getcurrbuf 
  2883.   ──────────────────────────────────────────────────────────────────────
  2884.   remarks:     Gets the current buffer at the top of the buffer list.
  2885.   returns:     The current bufferid if successful, otherwise null.
  2886.   see also:    findbuf, getprevbuf, gotobuf
  2887.  
  2888.  
  2889.   getcurrcurs  buffer
  2890.   ──────────────────────────────────────────────────────────────────────
  2891.   remarks:     Retrieves the current cursorid for the specified buffer.
  2892.                If 'buffer' is null or not specified, the current buffer
  2893.                is assumed.
  2894.   returns:     The current cursorid for a buffer.
  2895.   see also:    currcursor, destroycursor, setcursor
  2896.  
  2897.  
  2898.   getcurrfile 
  2899.   ──────────────────────────────────────────────────────────────────────
  2900.   remarks:     Gets the name of the macro language file being currently
  2901.                compiled or executed.
  2902.  
  2903.   returns:     If called from within the constant or #exec statements,
  2904.                the name of the file being currently compiled is
  2905.                returned, otherwise the name of the file being currently
  2906.                executed is returned.
  2907.  
  2908.   see also:    constant, #exec, geterror
  2909.  
  2910.  
  2911.   getcurrmark  buffer
  2912.   ──────────────────────────────────────────────────────────────────────
  2913.   remarks:     Retrieves the current markid for the specified buffer. If
  2914.                'buffer' is null or not specified, the current buffer is
  2915.                assumed.
  2916.   returns:     The current markid for a buffer.
  2917.   see also:    currmark
  2918.  
  2919.  
  2920.   getcurrobj 
  2921.   ──────────────────────────────────────────────────────────────────────
  2922.   remarks:     Gets the current (executing) object where this function
  2923.                is called.
  2924.   returns:     The current object.
  2925.   see also:    object
  2926.  
  2927.  
  2928.   getcurrpath  drive
  2929.   ──────────────────────────────────────────────────────────────────────
  2930.   remarks:     Retrieves the current path for the specified disk drive.
  2931.                If 'drive' is not specified, the current drive is
  2932.                assumed. If a drive is specified, it must be specified
  2933.                with a colon: 'C:', 'D:', etc.
  2934.   returns:     The current fully qualified path for the specified drive.
  2935.   see also:    currpath
  2936.  
  2937.  
  2938.   getcurrwin   opt=[c]
  2939.   ──────────────────────────────────────────────────────────────────────
  2940.   remarks:     Gets the current (topmost) window on the screen. If no
  2941.                options are specified, the topmost non-child window is
  2942.                returned. If option 'c' is specified, the topmost window
  2943.                is returned, whether or not the window is a child window.
  2944.   returns:     the current windowid
  2945.   see also:    getbotwin, gotowindow
  2946.  
  2947.  
  2948.   getcursbuf   cursor
  2949.   ──────────────────────────────────────────────────────────────────────
  2950.   remarks:     Retrieves the buffer associated with a cursor. If
  2951.                'cursor' is not specified, the current 'cursor' in the
  2952.                current buffer is assumed.
  2953.   returns:     The bufferid associated with the cursor if successful,
  2954.                otherwise null.
  2955.   see also:    getcurrbook
  2956.  
  2957.  
  2958.   getcurswin   cursor
  2959.   ──────────────────────────────────────────────────────────────────────
  2960.   remarks:     Retrieves the windowid (if any) associated with a cursor.
  2961.                If 'cursor' is not specified, the current 'cursor' in the
  2962.                current buffer is assumed.
  2963.   returns:     The windowid associated with a cursor if successful,
  2964.                otherwise null.
  2965.   see also:    getwincurs
  2966.  
  2967.  
  2968.   getdate      format
  2969.   ──────────────────────────────────────────────────────────────────────
  2970.   remarks:     Gets the current date in the specified format. If
  2971.                'format' is not specified, the format previously passed
  2972.                to the 'international' function is assumed.
  2973.  
  2974.                See the 'international' function for a list of valid date
  2975.                formats.
  2976.  
  2977.   returns:     The current date.
  2978.   see also:    getfileinfo, getrawtime, gettime, international
  2979.  
  2980.  
  2981.   getdialog    ref1 ref2 ...                                    [Lib][a]
  2982.   ──────────────────────────────────────────────────────────────────────
  2983.   remarks:     Displays the current dialog box as a modal dialog box
  2984.                (existing windows on the screen cannot be placed on top
  2985.                of a modal dialog box). This function does not return
  2986.                until the dialog box has been closed.
  2987.  
  2988.                The current dialog box control values are returned in the
  2989.                variables (ref1, ref2, etc.) passed by reference to this
  2990.                function. The order of the return values is the same
  2991.                order in which the dialog box controls were defined.
  2992.  
  2993.                The following values are returned for each control:
  2994.  
  2995.                  button    - null
  2996.                  field     - the contents of the edit field
  2997.                  group     - the checked items in the group box, in
  2998.                              'initvalue' format (see the 'groupbox'
  2999.                              function)
  3000.                  listbox   - the line at the cursor within the list box
  3001.  
  3002.   returns:     The title of the button pressed to close the window. If
  3003.                <enter> is pressed then 'Ok' is returned. If <esc> is
  3004.                pressed, then null is returned.
  3005.  
  3006.                If the 'close' function is called from within a dialog
  3007.                box event-handling function (defined with 'whenenter' or
  3008.                'whenselect'), then the first argument passed to 'close'
  3009.                is returned.
  3010.  
  3011.                Dialog box control values are also returned in variables
  3012.                passed by reference to this function.
  3013.  
  3014.   see also:    dialog, showdialog, whenenter, whenselect
  3015.  
  3016.   example:     dialog "Test Dialog Box" 40 17
  3017.                field "Enter string1: " 18 2 8
  3018.                field "Enter string2: " 18 4 8
  3019.                variable field1
  3020.                variable field2
  3021.                // display the dialog box, and get return values
  3022.                if (getdialog ref field1 ref field2) == 'Ok' then 
  3023.                  :
  3024.                end 
  3025.  
  3026.  
  3027.   getdisk      opt=[cfmnv] drive
  3028.   ──────────────────────────────────────────────────────────────────────
  3029.   remarks:     Retrieves information about the specified disk drive. If
  3030.                a drive is not specified, the current drive is assumed.
  3031.                The following options can be specified:
  3032.  
  3033.                  c - returns the total drive capacity
  3034.                  f - returns the free space on the drive
  3035.                  m - returns a string composed of all available disk
  3036.                      drive letters. If option 'n' is also specified,
  3037.                      each drive letter is followed by '2' if a network
  3038.                      drive or '1' if not a network drive
  3039.                  v - returns the volume name for the drive
  3040.  
  3041.   returns:     Information based on the specified options.
  3042.   see also:    getcurrpath
  3043.  
  3044.   example:     getdisk 'f'
  3045.                  // returns the free space on the current drive
  3046.                getdisk 'v' "c:"
  3047.                  // returns the volume name for drive C
  3048.  
  3049.  
  3050.   getenv       variable
  3051.   ──────────────────────────────────────────────────────────────────────
  3052.   remarks:     Gets the value of the specified environment variable.
  3053.                'variable' must be in upper case.
  3054.  
  3055.   returns:     The value of an environment variable if successful,
  3056.                otherwise null.
  3057.   see also:    getos
  3058.  
  3059.   example:     getenv "PATH"        // returns the Dos 'PATH' string
  3060.  
  3061.  
  3062.   geterror     opt=[cfkls]
  3063.   ──────────────────────────────────────────────────────────────────────
  3064.   remarks:     Retrieves error information after compiling macro source
  3065.                code with the 'compilemacro' or 'eval' functions, or
  3066.                executing macros with the 'runmacro' and 'loadobject'
  3067.                functions. One of the following options can be specified:
  3068.  
  3069.                  c - error code (zero if successful)
  3070.                  f - source filename where the error occurred
  3071.                  k - column in the source file where the error occurred
  3072.                  l - line in the source file where the error occurred
  3073.                  s - an error information string.  The string contents
  3074.                      depend on the error code (see the 'compilemacro'
  3075.                      and 'seterror' functions for additional
  3076.                      information).
  3077.  
  3078.                If no options are specified, 'c' is assumed.
  3079.  
  3080.   returns:     Information based on the options specified.
  3081.   see also:    compilemacro, eval, runmacro, seterror
  3082.  
  3083.  
  3084.   geteventcode  eventname
  3085.   ──────────────────────────────────────────────────────────────────────
  3086.   remarks:     Gets the event code for the specified event name.
  3087.   returns:     an event code
  3088.   see also:    geteventname
  3089.  
  3090.   example:     say "The keycode for <ctrl b> is: " +
  3091.                     (geteventcode "<ctrl b>")
  3092.  
  3093.  
  3094.   geteventcount 
  3095.   ──────────────────────────────────────────────────────────────────────
  3096.   remarks:     Gets the number of real physical events (keyboard and
  3097.                mouse) which have occurred in the current editing
  3098.                session.
  3099.   returns:     The number of real events.
  3100.   see also:    event?, keyhit?, shiftkey?
  3101.  
  3102.  
  3103.   geteventobj 
  3104.   ──────────────────────────────────────────────────────────────────────
  3105.   remarks:     Gets the current event object. The current event object
  3106.                is the object where events are dispatched by the editor.
  3107.   returns:     The current event objectid.
  3108.   see also:    seteventobj
  3109.  
  3110.  
  3111.   getexe 
  3112.   ──────────────────────────────────────────────────────────────────────
  3113.   remarks:     Gets the name of the currently executing editor .Exe
  3114.                file, without the path or file extension.
  3115.   returns:     The editor .Exe name.
  3116.   see also:    getversion  getos
  3117.  
  3118.  
  3119.   getfileinfo  filename opt=[adtrs]
  3120.   ──────────────────────────────────────────────────────────────────────
  3121.   remarks:     Retrieves information about the specified file or
  3122.                directory. Any one of the following options may be
  3123.                specified:
  3124.  
  3125.                  a - return the file attributes as a 4-character string
  3126.                  d - return the file date in international format
  3127.                  t - return the file time in international format
  3128.                  r - return the file date and time in raw format
  3129.                  s - return the file size in bytes
  3130.  
  3131.                If option 'r' is specified, the raw time will contain '0'
  3132.                for the day-of-the-week and hundredths of a second (see
  3133.                'getrawtime').
  3134.  
  3135.   returns:     Information based on the options specified
  3136.   see also:    getdate, getrawtime, gettime
  3137.  
  3138.  
  3139.   getfold      opt=[contbsl] row buffer
  3140.   ──────────────────────────────────────────────────────────────────────
  3141.   remarks:     Returns information about a fold at the specified row in
  3142.                a buffer. If 'buffer' is null or not specified, then the
  3143.                current buffer is assumed. If 'row' is not specified,
  3144.                then the line at the cursor is assumed. The following
  3145.                options may be specified:
  3146.  
  3147.                  l - Returns the line number of the top or bottom row in
  3148.                      an open fold. The following options may also be
  3149.                      specified:
  3150.  
  3151.                        t - returns the top line number
  3152.                        b - returns the bottom line number
  3153.  
  3154.                      If options 't' and 'b' are not specified, then 't'
  3155.                      is assumed.
  3156.  
  3157.                  n - Returns the total number of folds in the buffer
  3158.                      ('row' is ignored). The following options may be
  3159.                      specified:
  3160.  
  3161.                        c - returns the total number of closed folds
  3162.                        o - returns the total number of open folds
  3163.  
  3164.                      If options 'c' and 'o' are not specified, then 'co'
  3165.                      (both open and closed folds) is assumed.
  3166.  
  3167.                  s - returns the number of lines in the closed fold at
  3168.                      the specified row.
  3169.  
  3170.                If none of the above options are specified, then the
  3171.                following options may be used to test whether or not the
  3172.                current line is on a fold boundary:
  3173.  
  3174.                  c - returns true if the specified row is on the top or
  3175.                      bottom line of a closed fold.
  3176.                  o - returns true if the specified row is on the top or
  3177.                      bottom line of an open fold.
  3178.                  t - returns true if the specified row is on the top
  3179.                      line of a fold.
  3180.                  b - returns true if the specified row is on the bottom
  3181.                      line of a fold.
  3182.  
  3183.                If no options are specified, then 'ct' is assumed.
  3184.  
  3185.   returns:     Information based on the options specified.
  3186.  
  3187.   see also:    actualrow, apparentrow, closefold, createfold,
  3188.                destroyfold, fold?, foldblock, foldoptions, openfold
  3189.  
  3190.   example:     getfold
  3191.                  // returns true if a closed fold exists at the cursor
  3192.                  //   in the current buffer
  3193.                getfold 'ot'
  3194.                  // returns true if the cursor is on the top line of
  3195.                  //   an open fold
  3196.                getfold 'ns'
  3197.                  // returns the total number of closed folds in the
  3198.                  //   current buffer
  3199.                getfold 's'
  3200.                  // returns the number of lines in the closed fold at
  3201.                  //   the cursor in the current buffer
  3202.  
  3203.  
  3204.   gethistname                                                   [Lib][a]
  3205.   ──────────────────────────────────────────────────────────────────────
  3206.   remarks:     Gets the history bufferid for the current prompt. This
  3207.                function is only for use within prompts.
  3208.   returns:     the history bufferid for the current prompt.
  3209.   see also:    addhistory, askhistory, gethiststr, pophistory
  3210.  
  3211.  
  3212.   gethiststr   historybuffer                                    [Lib][a]
  3213.   ──────────────────────────────────────────────────────────────────────
  3214.   remarks:     Gets the most recently used (or added) string for the
  3215.                specified history buffer.
  3216.  
  3217.   returns:     the most recently used history string.
  3218.   see also:    addhistory, askhistory, pophistory
  3219.  
  3220.   example:     addhistory "_find" "apples"
  3221.                say (gethiststr "_find")       // displays 'apples'
  3222.  
  3223.  
  3224.   getkey       opt=[ds]
  3225.   ──────────────────────────────────────────────────────────────────────
  3226.   remarks:     Waits for a key to be entered, bypassing the editor event
  3227.                queue. The display is updated if needed. The following
  3228.                options may be specified:
  3229.  
  3230.                  d - disable updating of the display
  3231.                  s - include scancodes for non-function (typeable) keys
  3232.  
  3233.   returns:     A keycode for the key pressed.
  3234.   see also:    geteventcode, geteventname
  3235.  
  3236.   example:     say "you pressed keycode: " + getkey
  3237.  
  3238.  
  3239.   geteventname  eventcode
  3240.   ──────────────────────────────────────────────────────────────────────
  3241.   remarks:     Gets the event name for the specified event code.
  3242.   returns:     an event name
  3243.   see also:    geteventcode
  3244.  
  3245.   example:     say "You pressed the key: " + (geteventname (getkey))
  3246.  
  3247.  
  3248.   getlinebeg   row buffer
  3249.   ──────────────────────────────────────────────────────────────────────
  3250.   remarks:     Gets the column of the first non-blank, non-tab character
  3251.                in a line. If 'buffer' is null or not specified, then the
  3252.                current buffer is assumed. If 'row' is not specified,
  3253.                then the line at the cursor is assumed.
  3254.  
  3255.   returns:     The column of the first non-blank, non-tab character,
  3256.                otherwise null.
  3257.  
  3258.   see also:    getlinelen, getlinesize
  3259.  
  3260.   example:     getlinebeg
  3261.                  // returns the first non-blank column of the current
  3262.                  //   line in the current buffer
  3263.                getlinelen 1
  3264.                  // returns the first non-blank column of the first
  3265.                  //   line in the current buffer
  3266.                getlinebeg 5 "abc"
  3267.                  // returns the first non-blank column of line 5 in
  3268.                  //   buffer "abc"
  3269.  
  3270.  
  3271.   getlinelen   row buffer
  3272.   ──────────────────────────────────────────────────────────────────────
  3273.   remarks:     Gets the length of a line. If 'buffer' is null or not
  3274.                specified, then the current buffer is assumed. If 'row'
  3275.                is not specified, then the line at the cursor is assumed.
  3276.  
  3277.   returns:     For non-binary buffers, the position of the last
  3278.                non-blank, non-tab character in the line is returned. For
  3279.                binary buffers, the position of the last character in the
  3280.                line is returned.
  3281.  
  3282.   see also:    getbinarylen, getlinebeg, getlinesize
  3283.  
  3284.   example:     getlinelen
  3285.                  // returns the length of the line at the cursor in
  3286.                  //   the current buffer
  3287.                getlinelen 1
  3288.                  // returns the length of the first line in the
  3289.                  //   current buffer
  3290.                getlinelen 5 "abc"
  3291.                  // returns the length of line 5 in the buffer "abc"
  3292.  
  3293.  
  3294.   getlines     buffer
  3295.   ──────────────────────────────────────────────────────────────────────
  3296.   remarks:     Gets the total number of lines in a buffer. If 'buffer'
  3297.                is null or not specified, then the current buffer is
  3298.                assumed. A buffer will always have at least one line.
  3299.   returns:     The number of lines in a buffer.
  3300.  
  3301.  
  3302.   getlinesize  row buffer
  3303.   ──────────────────────────────────────────────────────────────────────
  3304.   remarks:     Gets the length of a line. This function is nearly
  3305.                identical to the getlinelen function, except that the
  3306.                returned line length includes trailing blanks and tabs.
  3307.   returns:     the actual line length
  3308.   see also:    getlinebeg, getlinelen
  3309.  
  3310.  
  3311.   getloadinfo  opt=[dfst]
  3312.   ──────────────────────────────────────────────────────────────────────
  3313.   remarks:     Obtains information about the file or directory which was
  3314.                loaded by the most recent 'loadbuf' or 'insertbuf'
  3315.                function call. One of the following options can be
  3316.                specified:
  3317.  
  3318.                  d - return the number of subdirectories for a directory
  3319.                        load
  3320.                  f - return the number of files for a directory load
  3321.                  s - return total size of all files for a directory load
  3322.                  t - return the load type: 0 for files, 1 for
  3323.                        directories
  3324.  
  3325.   returns:     Information based on the options specified.
  3326.   see also:    insertbuf, loadbuf
  3327.  
  3328.  
  3329.   getmarkbot   mark
  3330.   ──────────────────────────────────────────────────────────────────────
  3331.   remarks:     Gets the bottommost line of a mark. If 'mark' is not
  3332.                specified, the default markid is assumed.
  3333.   returns:     The bottommost line of the mark if successful, otherwise
  3334.                null.
  3335.   see also:    getmarkleft, getmarkright, getmarktop
  3336.  
  3337.  
  3338.   getmarkbuf   mark
  3339.   ──────────────────────────────────────────────────────────────────────
  3340.   remarks:     Retrieves the buffer associated with a mark. If 'mark' is
  3341.                not specified, the default markid is assumed.
  3342.   returns:     The bufferid of the buffer associated with the mark
  3343.                if successful, otherwise null.
  3344.   see also:    getcurrmark
  3345.  
  3346.  
  3347.   getmarkcols  mark
  3348.   ──────────────────────────────────────────────────────────────────────
  3349.   remarks:     Gets the width of a mark. For line marks, 16001 is
  3350.                returned. For column, character, and stream marks, the
  3351.                end column minus the start column plus 1 is returned. If
  3352.                'mark' is not specified, the default markid is assumed.
  3353.   returns:     The mark width if successful, otherwise null.
  3354.   see also:    getmarkrows
  3355.  
  3356.  
  3357.   getmarkleft  mark
  3358.   ──────────────────────────────────────────────────────────────────────
  3359.   remarks:     Gets the leftmost column of a mark. For line marks, zero
  3360.                is returned. For character and stream marks, the starting
  3361.                column of the mark is returned. If 'mark' is not
  3362.                specified, the default markid is assumed.
  3363.   returns:     The leftmost column of the mark if successful, otherwise
  3364.                null.
  3365.   see also:    getmarkbot, getmarkright, getmarktop
  3366.  
  3367.  
  3368.   getmarkright  mark
  3369.   ──────────────────────────────────────────────────────────────────────
  3370.   remarks:     Gets the rightmost column of a mark. For line marks,
  3371.                16001 is returned. For character and stream marks, the
  3372.                ending column of the mark is returned. If 'mark' is not
  3373.                specified, the default markid is assumed.
  3374.   returns:     The rightmost column of the mark if successful, otherwise
  3375.                null.
  3376.   see also:    getmarkbot, getmarkleft, getmarktop
  3377.  
  3378.  
  3379.   getmarkrows  mark
  3380.   ──────────────────────────────────────────────────────────────────────
  3381.   remarks:     Gets the mark height (the number of lines spanned by the
  3382.                mark). If 'mark' is not specified, the default markid is
  3383.                assumed.
  3384.   returns:     The mark height if successful, otherwise null.
  3385.   see also:    getmarkcols
  3386.  
  3387.  
  3388.   getmarktop   mark
  3389.   ──────────────────────────────────────────────────────────────────────
  3390.   remarks:     Gets the topmost line of a mark.  If 'mark' is not
  3391.                specified, the default markid is assumed.
  3392.   returns:     The topmost line of the mark if successful, otherwise
  3393.                null.
  3394.   see also:    getmarkbot, getmarkleft, getmarkright
  3395.  
  3396.  
  3397.   getmarktype  mark
  3398.   ──────────────────────────────────────────────────────────────────────
  3399.   remarks:     Gets the mark type (column, line, character, or stream).
  3400.                If 'mark' is not specified, the default markid is
  3401.                assumed.
  3402.  
  3403.   returns:     A one-byte string indicating the mark type:
  3404.                  l - line mark
  3405.                  k - column mark
  3406.                  c - character mark
  3407.                  s - stream mark
  3408.  
  3409.   see also:    markchar, markcolumn, markline, markstream
  3410.  
  3411.  
  3412.   getmarkuse 
  3413.   ──────────────────────────────────────────────────────────────────────
  3414.   remarks:     Gets the default markid.
  3415.   returns:     the default markid.
  3416.   see also:    usemark
  3417.  
  3418.  
  3419.   getmenu      opt=[hwnxym] row menubuffer
  3420.   ──────────────────────────────────────────────────────────────────────
  3421.   remarks:     Retrieves information about a menu buffer created with
  3422.                the 'menu' keyword. 'menubuffer' specifies the name of
  3423.                the menu. If 'menubuffer' is null or not specified, then
  3424.                the current buffer is assumed. If 'row' is not specified,
  3425.                then the line at the cursor is assumed.
  3426.  
  3427.                One of the following options can be specified.
  3428.  
  3429.                  h - return the menu highlight column for the row
  3430.                  m - return TRUE if the buffer is a menu buffer
  3431.                  n - return the menu item description text
  3432.                  w - return the menu width
  3433.                  y - return the cursor row at last menu exit
  3434.                  x - return the menu item compiled macro code (if any)
  3435.  
  3436.   returns:     Information based on the options specified.
  3437.   see also:    menu
  3438.  
  3439.  
  3440.   getmenubar   opt=[cfnosw] menubar[1-4] item window
  3441.   ──────────────────────────────────────────────────────────────────────
  3442.   remarks:     Retrieves information about a menu bar. If 'window' is
  3443.                not specified, the current window is assumed.
  3444.  
  3445.                'menubar' specifies one of the 4 possible menu bars for a
  3446.                window. If 'menubar' is not specified, 1 is assumed (the
  3447.                primary menu bar).
  3448.  
  3449.                'item' is an integer specifying the relative position of
  3450.                a menu bar item from the beginning of the menu bar. If
  3451.                'item' is not specified, the current highlighted menu bar
  3452.                item is assumed.
  3453.  
  3454.                The following options may be specified:
  3455.  
  3456.                  c - returns the highlighted character for a menu bar
  3457.                      item
  3458.                  f - returns the menu bar item function string
  3459.                  n - returns the total number of menu bar items
  3460.                  o - returns the offset (in columns) of the menu bar
  3461.                      item description text from the beginning of the
  3462.                      menu bar
  3463.                  s - returns the menu bar item description text
  3464.                  w - returns the menu bar width (for west menus only)
  3465.  
  3466.                If no options are specified, the current highlighted
  3467.                menu bar item is returned.
  3468.  
  3469.   returns:     Information based on the options specified
  3470.   see also:    hilitebar, menubar
  3471.  
  3472.   example:     getmenubar
  3473.                  // returns the currently highlighted item on the
  3474.                  //   primary menu bar (tests if an item is highlighted)
  3475.                getmenubar 'n' 2
  3476.                  // returns the total number of menu bar items for
  3477.                  //   menu bar 2
  3478.                getmenubar 's' '' 3
  3479.                  // returns the description for the third menu bar item
  3480.                  //   on the primary menu bar
  3481.  
  3482.  
  3483.   getmousex    opt=[e]
  3484.   ──────────────────────────────────────────────────────────────────────
  3485.   remarks:     Gets the virtual X coordinate of the mouse pointer. If
  3486.                option 'e' is specified, the X coordinate where the last
  3487.                mouse event occurred is returned.
  3488.   returns:     the mouse virtual X coordinate
  3489.   see also:    getmousex, mousepos
  3490.  
  3491.  
  3492.   getmousey    opt=[e]
  3493.   ──────────────────────────────────────────────────────────────────────
  3494.   remarks:     Gets the virtual Y coordinate of the mouse pointer. If
  3495.                option 'e' is specified, the Y coordinate where the last
  3496.                mouse event occurred is returned.
  3497.   returns:     the mouse virtual Y coordinate
  3498.   see also:    getmousey, mousepos
  3499.  
  3500.  
  3501.   getnextwin   window opt=[z]
  3502.   ──────────────────────────────────────────────────────────────────────
  3503.   remarks:     Gets the window after 'window' the window list. If
  3504.                'window' is not specified, the current window is assumed.
  3505.                If option 'z' is specified, any window may be returned,
  3506.                otherwise only a window at the same child-level as
  3507.                'window' is returned.
  3508.   returns:     the windowid of the next window if successful, otherwise
  3509.                null.
  3510.   see also:    getchild, getprevwin
  3511.  
  3512.  
  3513.   getos        opt=[vml]
  3514.   ──────────────────────────────────────────────────────────────────────
  3515.   remarks:     Gets information about the operating system. One of the
  3516.                following options may be specified:
  3517.  
  3518.                  v - return the major Dos version number
  3519.                  m - return the minor Dos version number
  3520.                  l - return TRUE if long filenames are supported
  3521.  
  3522.                If no options are specified, the operation system name
  3523.                'Dos' is returned.
  3524.  
  3525.   returns:     The operating system name or version.
  3526.   see also:    getversion
  3527.  
  3528.  
  3529.   getpalette   position
  3530.   ──────────────────────────────────────────────────────────────────────
  3531.   remarks:     Retrieves a color attribute from a 100-byte user-defined
  3532.                palette area defined with the 'setpalette' function. If
  3533.                no position is specified, the entire palette area is
  3534.                returned. The editor library code (Lib.x) expects color
  3535.                attributes to be in the positions defined in Color.aml.
  3536.   returns:     a numeric color attribute, or the 100-byte palette.
  3537.   see also:    Color.aml, setpalatte
  3538.  
  3539.  
  3540.   getparent    window
  3541.   ──────────────────────────────────────────────────────────────────────
  3542.   remarks:     Gets the parent window of a window. If 'window' is not
  3543.                specified, the current window is assumed.
  3544.   returns:     the windowid of the parent window if successful,
  3545.                otherwise null.
  3546.   see also:    getchild, setparent
  3547.  
  3548.  
  3549.   getprevbook  bookmark
  3550.   ──────────────────────────────────────────────────────────────────────
  3551.   remarks:     Gets the bookmark preceding 'bookmark' in the bookmark
  3552.                list for the current buffer. If 'bookmark' is not
  3553.                specified, the current bookmark in the current buffer is
  3554.                assumed.
  3555.   returns:     The bookmarkid of the previous bookmark if successful,
  3556.                otherwise null.
  3557.   see also:    currbook
  3558.  
  3559.  
  3560.   getprevbuf   buffer
  3561.   ──────────────────────────────────────────────────────────────────────
  3562.   remarks:     Gets the buffer before 'buffer' in the buffer list. If
  3563.                'buffer' is null or not specified, then the current
  3564.                buffer is assumed.
  3565.   returns:     The previous bufferid, or null if no previous buffer
  3566.                exists.
  3567.   see also:    findbuf, getcurrbuf
  3568.  
  3569.   example:     buffer = getcurrbuf           // cycles through existing
  3570.                while buffer do               //   buffers
  3571.                  buffer = getprevbuf buffer
  3572.                end 
  3573.  
  3574.  
  3575.   getprevcurs  cursor
  3576.   ──────────────────────────────────────────────────────────────────────
  3577.   remarks:     Gets the cursor before 'cursor' in the cursor list for
  3578.                the current buffer. If 'cursor' is not specified, the
  3579.                current cursor in the current buffer is assumed.
  3580.   returns:     The cursorid of the previous cursor if successful,
  3581.                otherwise null.
  3582.   see also:    currcursor
  3583.  
  3584.  
  3585.   getprevmark  mark
  3586.   ──────────────────────────────────────────────────────────────────────
  3587.   remarks:     Gets the mark preceding 'mark' in the mark list for the
  3588.                current buffer. If 'mark' is not specified, the default
  3589.                markid is assumed.
  3590.   returns:     The markid of the previous mark if successful, otherwise
  3591.                null.
  3592.   see also:    currmark
  3593.  
  3594.  
  3595.   getprevwin   window opt=[z]
  3596.   ──────────────────────────────────────────────────────────────────────
  3597.   remarks:     Gets the window before 'window' the window list. If
  3598.                'window' is not specified, the current window is assumed.
  3599.                If option 'z' is specified, any window may be returned,
  3600.                otherwise only a window at the same child-level as
  3601.                'window' is returned.
  3602.   returns:     the windowid of the previous window if successful,
  3603.                otherwise null.
  3604.   see also:    getchild, getnextwin
  3605.  
  3606.  
  3607.   getrawtime 
  3608.   ──────────────────────────────────────────────────────────────────────
  3609.   remarks:     Gets the current date and time in a 17 character string.
  3610.                The format of the string is as follows:
  3611.  
  3612.                format:
  3613.                  YYYYMMDDWhhmmssuu
  3614.  
  3615.                where:
  3616.                  YYYY = year
  3617.                  MM   = month [1-12]
  3618.                  DD   = day [1-31]
  3619.                  W    = day of the week [0-6, 0=sunday]
  3620.                  hh   = hour [0-23]
  3621.                  mm   = minutes [0-59]
  3622.                  ss   = seconds [0-59]
  3623.                  uu   = hundredths of a second [0-99]
  3624.  
  3625.   returns:     The current date and time in raw format.
  3626.   see also:    getdate, getfileinfo, gettime
  3627.  
  3628.  
  3629.   getrealtext  col length row buffer
  3630.   ──────────────────────────────────────────────────────────────────────
  3631.   remarks:     Retrieves text within a line. This function is nearly
  3632.                identical to the gettext function, except that it returns
  3633.                the text at the original physical memory location in the
  3634.                buffer (unlike the gettext function, which returns a
  3635.                copy).
  3636.  
  3637.                The text returned from this function must be used
  3638.                immediately, since the editor automatically changes
  3639.                memory contents as needed.
  3640.  
  3641.                This function is useful when the actual physical address
  3642.                of buffer text is needed for machine language functions,
  3643.                or for optimizing macros where the text will be used
  3644.                immediately.
  3645.  
  3646.   returns:     a line or a portion of a line
  3647.   see also:    getchar, gettext
  3648.  
  3649.  
  3650.   getregion    virtualX virtualY window
  3651.   ──────────────────────────────────────────────────────────────────────
  3652.   remarks:     Returns an integer code identifying the region of a
  3653.                window containing the virtual screen coordinate
  3654.                'virtualX', 'virtualY'. If 'window' is not specified, the
  3655.                current window is assumed. If 'virtualX' and 'virtualY'
  3656.                are not specified, the current mouse position is assumed.
  3657.                This function is useful for determining where a mouse
  3658.                click occurred.
  3659.  
  3660.                The following table shows the integer codes and the
  3661.                corresponding window regions:
  3662.  
  3663.                code        region
  3664.                ────        ──────
  3665.                  0         'virtualX', 'virtualY' is not in the window
  3666.                  1         client area
  3667.  
  3668.                  2         north border
  3669.                  3         east border
  3670.                  4         south border
  3671.                  5         west border
  3672.                  6         northwest border corner
  3673.                  7         northeast border corner
  3674.                  8         southeast border corner
  3675.                  9         southwest border corner
  3676.  
  3677.                 11         north title bar
  3678.                 12         south title bar
  3679.                 13         west title
  3680.                 14         east title
  3681.  
  3682.                 19         vertical & horizontal scroll bar intersection
  3683.                 21         vertical scroll bar up arrow
  3684.                 22         vertical scroll bar down arrow
  3685.                 23         vertical scroll bar page-up bar
  3686.                 24         vertical scroll bar page-down bar
  3687.                 25         vertical scroll bar thumb
  3688.  
  3689.                 31         horizontal scroll bar left arrow
  3690.                 32         horizontal scroll bar right arrow
  3691.                 33         horizontal scroll bar page-left bar
  3692.                 34         horizontal scroll bar page-right bar
  3693.                 35         horizontal scroll bar thumb
  3694.  
  3695.                 51 - 100   window title bar controls from left to right
  3696.  
  3697.                101 - 200   primary menu bar items from left to right
  3698.                201 - 300   menu bar 2 items from left to right
  3699.                301 - 400   menu bar 3 items from left to right
  3700.                401 - 500   menu bar 4 items from left to right
  3701.  
  3702.   returns:     a window region code.
  3703.  
  3704.   example:     function <lbutton>   // determine where a left mouse
  3705.                  case getregion     //   button click occurred
  3706.                    when 1  ...      // client area?
  3707.                    when 11 ...      // north title bar?
  3708.                     :
  3709.                  end 
  3710.                end 
  3711.  
  3712.  
  3713.   getrow       buffer
  3714.   ──────────────────────────────────────────────────────────────────────
  3715.   remarks:     Gets the current line number of the cursor. If 'buffer'
  3716.                is null or not specified, the current buffer is assumed.
  3717.   returns:     The current line number of the cursor.
  3718.   see also:    getcol, getlines
  3719.  
  3720.  
  3721.   getsettings                                                 [Lib][mon]
  3722.   ──────────────────────────────────────────────────────────────────────
  3723.   remarks:     Gets the current window settings as they appear on the
  3724.                edit window title bar. See the 'setting' command for a
  3725.                description of window settings.
  3726.   returns:     a string containing the current window settings.
  3727.   see also:    setting, setting?
  3728.  
  3729.  
  3730.   getstr       length x y
  3731.   ──────────────────────────────────────────────────────────────────────
  3732.   remarks:     Gets a string of the specified length at the specified
  3733.                x,y position in the current video output window. If x or
  3734.                y are not specified, the current video cursor position is
  3735.                assumed.
  3736.  
  3737.   returns:     the string at x,y
  3738.   see also:    fillrect, getattr, getx, gety, gotoxy, gotoscreen,
  3739.                hilite, writeline, writestr
  3740.  
  3741.  
  3742.   getsyntax    window
  3743.   ──────────────────────────────────────────────────────────────────────
  3744.   remarks:     Retrieves the syntax highlighting object associated with
  3745.                a window. If 'window' is not specified, the current
  3746.                window is assumed.
  3747.   returns:     a syntax highlighting object
  3748.   see also:    setsyntax
  3749.  
  3750.  
  3751.   gettext      col length row buffer
  3752.   ──────────────────────────────────────────────────────────────────────
  3753.   remarks:     Retrieves text within a line in the specified buffer. If
  3754.                'buffer' is null or not specified, then the current
  3755.                buffer is assumed. If 'row' is not specified, then the
  3756.                line at the cursor is assumed. If 'col' is not specified,
  3757.                then column one is assumed. If 'length' is not specified,
  3758.                then the length from the specified column to the end of
  3759.                the line is assumed. If 'col' is beyond the end of the
  3760.                line, then null is returned.
  3761.  
  3762.   returns:     A copy of a line (or portion of the line) if successful,
  3763.                otherwise null.
  3764.  
  3765.   see also:    getchar, getrealtext
  3766.  
  3767.   example:     gettext
  3768.                  // returns the line at the cursor in the current buffer
  3769.                gettext 3
  3770.                  // returns the portion of the current line from
  3771.                  //   column 3 to the end of the line
  3772.                gettext 3 5
  3773.                  // returns 5 characters at column 3, on the current line
  3774.                  //   in the current buffer
  3775.                gettext 3 5 20 "abc"
  3776.                  // returns 5 characters at column 3, line 20 in the
  3777.                  //   buffer "abc"
  3778.  
  3779.  
  3780.   gettitle     titleid[1-5] window opt=[h]
  3781.   ──────────────────────────────────────────────────────────────────────
  3782.   remarks:     Gets a window title string for a window. If 'window' is
  3783.                not specified, the current window is assumed. 'titleid'
  3784.                specifies which window title to retrieve. If 'titleid' is
  3785.                zero, then one is assumed (the primary title).
  3786.  
  3787.                If option 'h' is specified, then this function returns
  3788.                the highlighted position within the title string.
  3789.  
  3790.   returns:     a window title string.
  3791.   see also:    settitle
  3792.  
  3793.   example:     gettitle
  3794.                  // returns title 1 for the current window
  3795.                gettitle 3 "abc"
  3796.                  // returns title 3 for window "abc"
  3797.  
  3798.  
  3799.   gettime      format
  3800.   ──────────────────────────────────────────────────────────────────────
  3801.   remarks:     Gets the current time in the specified format. If
  3802.                'format' is not specified, the format previously passed
  3803.                to the 'international' function is assumed. If the format
  3804.                is -1, the international format is assumed, but with
  3805.                seconds added (if not already present).
  3806.  
  3807.                See the 'international' function for a list of valid time
  3808.                formats.
  3809.  
  3810.   returns:     The current time.
  3811.   see also:    getdate, getfileinfo, getrawtime, international
  3812.  
  3813.  
  3814.   getversion 
  3815.   ──────────────────────────────────────────────────────────────────────
  3816.   remarks:     Gets the current version of the editor.
  3817.   returns:     The current version (major and minor) of the editor as a
  3818.                string.
  3819.   see also:    getexe, getos
  3820.  
  3821.  
  3822.   getvidbot 
  3823.   ──────────────────────────────────────────────────────────────────────
  3824.   remarks:     Gets the virtual coordinate of the bottommost row of the
  3825.                physical screen.
  3826.   returns:     the bottom edge of the physical screen.
  3827.   see also:    getvidleft, getvidright, getvidrows, getvidtop
  3828.  
  3829.  
  3830.   getvidcols 
  3831.   ──────────────────────────────────────────────────────────────────────
  3832.   remarks:     Gets the number of columns on the screen.
  3833.   returns:     the number of columns on the screen.
  3834.   see also:    getvidleft, getvidright, getvidrows
  3835.  
  3836.  
  3837.   getvidleft 
  3838.   ──────────────────────────────────────────────────────────────────────
  3839.   remarks:     Gets the virtual coordinate of the leftmost column of the
  3840.                physical screen.
  3841.   returns:     the left edge of the physical screen.
  3842.   see also:    getvidbot, getvidcols, getvidright, getvidtop
  3843.  
  3844.  
  3845.   getvidright 
  3846.   ──────────────────────────────────────────────────────────────────────
  3847.   remarks:     Gets the virtual coordinate of the rightmost column of
  3848.                the physical screen.
  3849.   returns:     the right edge of the physical screen.
  3850.   see also:    getvidbot, getvidcols, getvidleft, getvidtop
  3851.  
  3852.  
  3853.   getvidrows 
  3854.   ──────────────────────────────────────────────────────────────────────
  3855.   remarks:     Gets the number of rows on the screen.
  3856.   returns:     the number of rows on the screen.
  3857.   see also:    getvidbot, getvidcols, getvidtop
  3858.  
  3859.  
  3860.   getvidtop 
  3861.   ──────────────────────────────────────────────────────────────────────
  3862.   remarks:     Gets the virtual coordinate of the topmost row of the
  3863.                physical screen.
  3864.   returns:     the top edge of the physical screen.
  3865.   see also:    getvidbot, getvidleft, getvidright, getvidrows
  3866.  
  3867.  
  3868.   getviewbot   window
  3869.   ──────────────────────────────────────────────────────────────────────
  3870.   remarks:     Gets the line number of the bottommost visible row in a
  3871.                window. If 'window' is not specified, the current window
  3872.                is assumed.
  3873.   returns:     the bottommost visible row in a window.
  3874.   see also:    getviewleft, getviewright, getviewtop
  3875.  
  3876.  
  3877.   getviewcols  window
  3878.   ──────────────────────────────────────────────────────────────────────
  3879.   remarks:     Gets the number of visible columns in a window. If
  3880.                'window' is not specified, the current window is assumed.
  3881.   returns:     the number of visible columns.
  3882.   see also:    getviewleft, getviewright, getviewrows
  3883.  
  3884.  
  3885.   getviewleft  window
  3886.   ──────────────────────────────────────────────────────────────────────
  3887.   remarks:     Gets the leftmost column in a window. If 'window' is not
  3888.                specified, the current window is assumed.
  3889.   returns:     the leftmost column in a window.
  3890.   see also:    getviewbot, getviewright, getviewtop
  3891.  
  3892.  
  3893.   getviewright  window
  3894.   ──────────────────────────────────────────────────────────────────────
  3895.   remarks:     Gets the rightmost visible column in a window. If
  3896.                'window' is not specified, the current window is assumed.
  3897.   returns:     the rightmost visible column in a window.
  3898.   see also:    getviewbot, getviewleft, getviewtop
  3899.  
  3900.  
  3901.   getviewrows  window
  3902.   ──────────────────────────────────────────────────────────────────────
  3903.   remarks:     Gets the number of visible rows in a window. If 'window'
  3904.                is not specified, the current window is assumed.
  3905.   returns:     the number of visible rows.
  3906.   see also:    getviewbot, getviewcols, getviewtop
  3907.  
  3908.  
  3909.   getviewtop   window
  3910.   ──────────────────────────────────────────────────────────────────────
  3911.   remarks:     Gets the line number of the topmost row in a window. If
  3912.                'window' is not specified, the current window is assumed.
  3913.   returns:     the topmost row in a window.
  3914.   see also:    getviewbot, getviewleft, getviewright
  3915.  
  3916.  
  3917.   getwinbuf    window
  3918.   ──────────────────────────────────────────────────────────────────────
  3919.   remarks:     Gets the buffer associated with a window. If 'window' is
  3920.                not specified, the current window is assumed.
  3921.   returns:     the bufferid associated with the window is successful,
  3922.                otherwise null.
  3923.   see also:    getwincurs, setwincurs
  3924.  
  3925.  
  3926.   getwincount  window
  3927.   ──────────────────────────────────────────────────────────────────────
  3928.   remarks:     Gets the number of windows on the screen. If 'window' is
  3929.                specified, this function returns the number of child
  3930.                windows attached to 'window'.
  3931.   returns:     the number of windows on the screen, or the number of
  3932.                child windows attached to a window.
  3933.   see also:    getchild, setparent
  3934.  
  3935.  
  3936.   getwinctrl   window
  3937.   ──────────────────────────────────────────────────────────────────────
  3938.   remarks:     Gets the title bar controls for a window. If 'window' is
  3939.                not specified, the current window is assumed.
  3940.   returns:     a string containing all the title bar controls
  3941.   see also:    setwinctrl
  3942.  
  3943.  
  3944.   getwincurs   window
  3945.   ──────────────────────────────────────────────────────────────────────
  3946.   remarks:     Gets the cursor associated with a window. If 'window' is
  3947.                not specified, the current window is assumed. Only
  3948.                cursors associated with a buffer are returned.
  3949.   returns:     the cursorid of the window cursor if successful,
  3950.                otherwise null.
  3951.   see also:    getwinbuf, setwincurs
  3952.  
  3953.  
  3954.   getwinobj    window
  3955.   ──────────────────────────────────────────────────────────────────────
  3956.   remarks:     Gets the event object associated with a window. If
  3957.                'window' is not specified, the current window is assumed.
  3958.   returns:     the window event object.
  3959.   see also:    setwinobj
  3960.  
  3961.  
  3962.   getwinscr    virtualX virtualY window
  3963.   ──────────────────────────────────────────────────────────────────────
  3964.   remarks:     Translates a virtual x,y coordinate in a scroll bar to a
  3965.                column or row in a window. If 'window' is not specified,
  3966.                the current window is assumed. This function can be used
  3967.                to translate a mouse pointer position in a scroll bar to
  3968.                a position in a window.
  3969.  
  3970.   returns:     A window column if virtualX, virtualY lies within a
  3971.                horizontal scroll bar, or a window row if virtualX,
  3972.                virtualY lies within a vertical scroll bar, otherwise
  3973.                null.
  3974.  
  3975.   see also:    getviewbot, getviewleft, getviewright, getviewtop
  3976.  
  3977.  
  3978.   getx 
  3979.   ──────────────────────────────────────────────────────────────────────
  3980.   remarks:     Gets the cursor column in the current video window. This
  3981.                function is ignored for windows which contain a buffer.
  3982.   returns:     the cursor column in the current video window
  3983.   see also:    fillrect, getattr, getstr, gety, gotoxy, gotoscreen,
  3984.                hilite, writeline, writestr
  3985.  
  3986.  
  3987.   gety 
  3988.   ──────────────────────────────────────────────────────────────────────
  3989.   remarks:     Gets the cursor row in the current video window. This
  3990.                function is ignored for windows which contain a buffer.
  3991.   returns:     the cursor row in the current video window
  3992.   see also:    fillrect, getattr, getstr, getx, gotoxy, gotoscreen,
  3993.                hilite, writeline, writestr
  3994.  
  3995.  
  3996.   gotobar      item                                             [Lib][a]
  3997.   ──────────────────────────────────────────────────────────────────────
  3998.   remarks:     Activates the specified menu bar item from the primary
  3999.                menu bar. 'item' specifies the menu bar item or the menu
  4000.                bar description text.
  4001.  
  4002.   returns:     nothing
  4003.   see also:    getmenubar, gotobar2, menubar
  4004.  
  4005.   example:     gotobar 1       // highlights the 'File' menu bar item
  4006.                gotobar "File"  // highlights the 'File' menu bar item
  4007.  
  4008.  
  4009.   gotobar2     item                                             [Lib][a]
  4010.   ──────────────────────────────────────────────────────────────────────
  4011.   remarks:     Activates the specified menu bar item on the toolbar of
  4012.                an edit window, or the drive bar of a file manager
  4013.                window. 'item' specifies the menu bar item or the menu
  4014.                bar description text.
  4015.  
  4016.   returns:     nothing
  4017.   see also:    getmenubar, gotobar, menubar
  4018.  
  4019.  
  4020.   gotobook     bookmark
  4021.   ──────────────────────────────────────────────────────────────────────
  4022.   remarks:     Moves the cursor to a bookmark. Only the current cursor
  4023.                in the buffer associated with the bookmark is moved. If
  4024.                'bookmark' is not specified, the current 'bookmark' in
  4025.                the current buffer is assumed.
  4026.   returns:     TRUE if successful, otherwise null.
  4027.   see also:    getcurrbook, setbook
  4028.  
  4029.  
  4030.   gotobuf      buffer
  4031.   ──────────────────────────────────────────────────────────────────────
  4032.   remarks:     Makes the specified buffer the current buffer. If
  4033.                'buffer' is not specified, the buffer at the top of the
  4034.                buffer list becomes the current buffer.
  4035.  
  4036.                Unlike the 'currbuf' function, the position of the buffer
  4037.                in the buffer list is not changed.
  4038.  
  4039.   returns:     The previous current buffer if successful, otherwise null.
  4040.   see also:    currbuf, findbuf, getcurrbuf
  4041.  
  4042.   example:     oldbuffer = gotobuf 'abc'
  4043.                  // switch to buffer 'abc'
  4044.                  :
  4045.                gotobuf oldbuffer
  4046.                  // switch back to the old buffer
  4047.  
  4048.  
  4049.   gotomatch    char-pairs                                       [Lib][a]
  4050.   ──────────────────────────────────────────────────────────────────────
  4051.   remarks:     Finds the matching character for a character specified in
  4052.                'char-pairs'.
  4053.   returns:     Non-zero if found, otherwise null.
  4054.   example:     gotomatch "(){}[]<>"
  4055.  
  4056.  
  4057.   gotomenu     pulldown                                         [Lib][a]
  4058.   ──────────────────────────────────────────────────────────────────────
  4059.   remarks:     Displays the specified pulldown menu from the primary
  4060.                menu bar. 'pulldown' specifies the menu bar item or menu
  4061.                bar item description for the pulldown menu.
  4062.  
  4063.   returns:     nothing
  4064.   see also:    getmenu, menu, submenu
  4065.  
  4066.   example:     gotomenu 1        // displays the 'File' pulldown menu
  4067.                gotomenu "File"
  4068.  
  4069.  
  4070.   gotopos      col row buffer
  4071.   ──────────────────────────────────────────────────────────────────────
  4072.   remarks:     Moves the cursor to the specified column and row. If
  4073.                'buffer' is null or not specified, the current buffer is
  4074.                assumed.
  4075.  
  4076.   returns:     the new cursor line number if successful, otherwise null.
  4077.   see also:    col, row, movepos
  4078.  
  4079.   example:     gotopos 1 1
  4080.                   // moves the cursor to column one of the first line
  4081.  
  4082.  
  4083.   gotoscreen 
  4084.   ──────────────────────────────────────────────────────────────────────
  4085.   remarks:     Changes all video functions to operate immediately on the
  4086.                actual physical screen. The physical screen becomes the
  4087.                current window for all builtin video functions. Column
  4088.                one and row one are located at the upper left corner of
  4089.                the screen. This function can be used to perform custom
  4090.                drawing of the display.
  4091.  
  4092.   returns:     nothing
  4093.   see also:    fillrect, getattr, getstr, getx, gety, gotowindow,
  4094.                gotoxy, hilite, writeline, writestr
  4095.  
  4096.  
  4097.   gotowindow   window
  4098.   ──────────────────────────────────────────────────────────────────────
  4099.   remarks:     Makes the specified window the current window. If
  4100.                'window' is not specified, the topmost window on the
  4101.                screen becomes the current window.
  4102.  
  4103.                Note that this function does not change the ordering of
  4104.                windows on the screen. It changes the 'current' or
  4105.                default window referenced in builtin window functions.
  4106.  
  4107.   returns:     The previous current window if successful, otherwise null.
  4108.   see also:    getcurrwin, gotoscreen
  4109.  
  4110.  
  4111.   gotoxy       col row
  4112.   ──────────────────────────────────────────────────────────────────────
  4113.   remarks:     Moves the cursor to the specified column and row in the
  4114.                current video window. This function is ignored for
  4115.                windows which contain a buffer.
  4116.  
  4117.   returns:     nothing
  4118.  
  4119.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  4120.                hilite, writeline, writestr
  4121.  
  4122.  
  4123.   groupbox     title x y buffer width initvalue valuemap        [Lib][a]
  4124.   ──────────────────────────────────────────────────────────────────────
  4125.   remarks:     Adds a group box window control to the current dialog
  4126.                box. The group box window becomes the current window. The
  4127.                group box may contain check boxes or radio buttons. The
  4128.                following parameters may be specified:
  4129.  
  4130.                title     - the group box title
  4131.                x         - the group box x-position in the dialog box
  4132.                y         - the group box y-position in the dialog box
  4133.                buffer    - the menu buffer to display in the group box
  4134.                width     - the group box width (if not specified, the
  4135.                            title width or widest menu item width is
  4136.                            used, whichever is widest)
  4137.                initvalue - the values (if any) used to intialize the
  4138.                            group box. Initial values are entered as a
  4139.                            string of one-character codes, with each
  4140.                            character representing a checked menu item
  4141.                            from a string of possible choices specified
  4142.                            by the 'valuemap' argument. If 'initvalue' is
  4143.                            not specified, the first menu item is
  4144.                            checked.
  4145.                valuemap  - a string of possible choices of one-character
  4146.                            codes for 'initvalue', which each character
  4147.                            representing a menu item. The first character
  4148.                            in the string represents the first menu item,
  4149.                            the second character represents the second
  4150.                            menu item, and so on.
  4151.  
  4152.                A group box menu item is a check box if the characters
  4153.                '[ ]' are the the first 4 characters in the menu item.
  4154.                The menu item is a radio button if the characters ' ( )'
  4155.                are the the first 4 characters in the menu item.
  4156.  
  4157.   returns:     The group box window id.
  4158.   see also:    button, dialog, field, listbox, setgroupbox, whenenter,
  4159.                whenselect
  4160.  
  4161.   example:     dialog "Test Dialog Box" 40 8
  4162.                  // create a dialog box
  4163.  
  4164.                groupbox 'Group Box:' 22 2
  4165.                  ( menu ''
  4166.                     item " [ ] &Apples"
  4167.                     item " [ ] &Oranges"
  4168.                     item " [ ] &Melons"
  4169.                     item " [ ] &Bananas"
  4170.                   end ) 15 'am' 'aomb'
  4171.                  // add a group box containing check boxes, initially
  4172.                  // checking the first and third menu items
  4173.  
  4174.                getdialog
  4175.                  // display the dialog box
  4176.  
  4177.  
  4178.   halt 
  4179.   ──────────────────────────────────────────────────────────────────────
  4180.   remarks:     Terminates the execution of the editor immediately and
  4181.                unconditionally.
  4182.   returns:     nothing
  4183.   see also:    delay, machine, system
  4184.  
  4185.  
  4186.   hex2bin      hexstring
  4187.   ──────────────────────────────────────────────────────────────────────
  4188.   remarks:     Converts a hexadecimal string, composed of only the
  4189.                characters 0-9 and A-F or a-f, to a binary string.
  4190.  
  4191.   returns:     a binary string.
  4192.   see also:    bin2hex
  4193.  
  4194.   example:     hex2bin "61"           // returns 'a'
  4195.                hex2bin "616263"       // returns 'abc'
  4196.  
  4197.  
  4198.   hidecursor 
  4199.   ──────────────────────────────────────────────────────────────────────
  4200.   remarks:     Hides the physical cursor in the current window. If the
  4201.                current window contains a buffer, the effects of this
  4202.                function are temporary and will disappear the next time
  4203.                the display is updated.
  4204.   returns:     nothing
  4205.   see also:    showcursor
  4206.  
  4207.  
  4208.   hidemouse 
  4209.   ──────────────────────────────────────────────────────────────────────
  4210.   remarks:     Hides the mouse pointer.
  4211.   returns:     nothing
  4212.   see also:    showmouse
  4213.  
  4214.  
  4215.   hidewindow   window
  4216.   ──────────────────────────────────────────────────────────────────────
  4217.   remarks:     Hides a window temporarily. If 'window' is null or not
  4218.                specified, then the current window is assumed. The window
  4219.                will be shown again the next time the display is updated.
  4220.   returns:     nothing
  4221.   see also:    showwindow
  4222.  
  4223.  
  4224.   hilite       length height color col row
  4225.   ──────────────────────────────────────────────────────────────────────
  4226.   remarks:     Highlights a rectangular area in the current window with
  4227.                the specified color attribute. 'length' and 'height'
  4228.                specify the dimensions of the highlighted rectangle.
  4229.                'col' and 'row' specify the upper left corner of the
  4230.                rectangle. If 'col' and 'row' are not specified, the
  4231.                current cursor position is assumed.
  4232.  
  4233.                If the current window displays a buffer, the effects of
  4234.                this function are temporary and will disappear the next
  4235.                time the display is updated.
  4236.  
  4237.                If the current window does not display a buffer and
  4238.                'height' is one, the current cursor position is moved to
  4239.                the right of the highlighted area.
  4240.  
  4241.   returns:     nothing
  4242.  
  4243.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  4244.                gotoxy, writeline, writestr
  4245.  
  4246.   example:     hilite 6 1 95
  4247.                  // highlights a word at the cursor of length 6
  4248.                  //   with the color 'white on magenta'
  4249.  
  4250.  
  4251.   hilitebar    menubar[1-4] item window
  4252.   ──────────────────────────────────────────────────────────────────────
  4253.   remarks:     Highlights or un-highlights a menu bar item in a window.
  4254.                There can only be one highlighted item per menu bar. If
  4255.                'window' is not specified, the current window is assumed.
  4256.  
  4257.                'menubar' specifies one of the 4 available menu bars in
  4258.                the window. If 'menubar' is not specified, 1 is assumed
  4259.                (the primary menu bar).
  4260.  
  4261.                'item' indicates the relative position of the menu bar
  4262.                item from the beginning of the menu bar (1 for the first
  4263.                item, 2 for the second item, and so on).
  4264.  
  4265.                If 'item' is null or zero, then the highlight is removed
  4266.                from any currently highlighted item in the menu bar.
  4267.  
  4268.   returns:     If successful, the offset (in character positions) of the
  4269.                specified menu bar item from the beginning of the menu
  4270.                bar, otherwise null.
  4271.  
  4272.   see also:    getmenubar, menubar
  4273.  
  4274.   example:     hilitebar
  4275.                  // removes the highlight from the primary menu bar
  4276.                hilitebar 2 5
  4277.                  // highlights item 5 on menu bar 2
  4278.  
  4279.  
  4280.   icompare     string1 string2 ...
  4281.   ──────────────────────────────────────────────────────────────────────
  4282.   remarks:     Tests if 'string1' is equal to any of the following
  4283.                arguments, ignoring case.
  4284.  
  4285.   returns:     TRUE if the comparison succeeds, otherwise null.
  4286.   see also:    flipcase, locase, upcase
  4287.  
  4288.   example:     icompare "apples" "Apples"     // returns TRUE
  4289.                icompare "apples" "oranges"    // returns null
  4290.  
  4291.  
  4292.   inheritkeys  [0/1] object
  4293.   ──────────────────────────────────────────────────────────────────────
  4294.   remarks:     Enables (1) or disables (0) the inheritance of keyboard
  4295.                events for the specified object. If 'object' is not
  4296.                specified, then the current object is assumed. When an
  4297.                object is initially created, keyboard inheritance is
  4298.                enabled.
  4299.   returns:     nothing
  4300.   see also:    object, objtype?, settype, setobjtype
  4301.  
  4302.  
  4303.   inmark?      col row buffer
  4304.   ──────────────────────────────────────────────────────────────────────
  4305.   remarks:     Tests if the specified column and row position lies
  4306.                within a mark. If 'col' and 'row' are not specified, then
  4307.                the current cursor position is assumed. If 'buffer' is
  4308.                not specified, the current buffer is assumed.
  4309.  
  4310.   returns:     The topmost markid containing 'col','row', otherwise
  4311.                null.
  4312.  
  4313.   see also:    mark?
  4314.  
  4315.   example:     if inmark? then      // if cursor is within a mark
  4316.                  deleteblock        //   then delete the mark text
  4317.                else                 // otherwise..
  4318.                  delchar            //   delete the char at the cursor
  4319.                end 
  4320.  
  4321.  
  4322.   insabove     string col row buffer
  4323.   ──────────────────────────────────────────────────────────────────────
  4324.   remarks:     Inserts a new line containing the specified string into a
  4325.                buffer. If 'buffer' is null or not specified, then the
  4326.                current buffer is assumed.
  4327.  
  4328.                If 'row' is specified, the new line is inserted before
  4329.                the specified row, otherwise the new line is inserted
  4330.                before the line at the cursor. If 'col' is specified, the
  4331.                string is placed at the specified column, otherwise the
  4332.                string is placed at column one.
  4333.  
  4334.   returns:     TRUE if successful, otherwise null.
  4335.   see also:    addline, delline, insline, joinline, splitline
  4336.  
  4337.   example:     insabove
  4338.                  // inserts a new line above the line at the cursor
  4339.                  //   in the current buffer
  4340.                insabove "New line" 1 6
  4341.                  // inserts a new line with the text "  New line"
  4342.                  //   above line 6 in the current buffer
  4343.                insabove "New line" 1 1 "abc"
  4344.                  // inserts a new line with the text "New line"
  4345.                  //   above line 1 in the buffer "abc"
  4346.  
  4347.  
  4348.   insert?      buffer
  4349.   ──────────────────────────────────────────────────────────────────────
  4350.   remarks:     Tests if the cursor is in insert or overstrike mode. If
  4351.                'buffer' is null or not specified, the current buffer is
  4352.                assumed.
  4353.   returns:     TRUE if the cursor is in insert mode, otherwise null.
  4354.   see also:    setcursor, writetext
  4355.  
  4356.  
  4357.   insertbuf    filespec buffer delim/binlen opt=[bxdfhkvqscu] trunc
  4358.                comment linenumber
  4359.   ──────────────────────────────────────────────────────────────────────
  4360.   remarks:     Inserts a file or directory into an existing buffer. If
  4361.                'buffer' is null or not specified, the current buffer is
  4362.                assumed.
  4363.  
  4364.                The file is inserted after 'linenumber'. If 'linenumber'
  4365.                is not specified, then the file is loaded after the
  4366.                current cursor position in the buffer.
  4367.  
  4368.                All other arguments and options are identical to the
  4369.                'loadbuf' function (see the 'loadbuf' function).
  4370.  
  4371.   returns:     The bufferid if successful, otherwise null.
  4372.  
  4373.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  4374.                loadbuf, menu
  4375.  
  4376.   example:     insertbuf "c:\\file.txt"
  4377.                  // loads "c:\file.txt" into the current buffer after
  4378.                  //   the current line in the buffer
  4379.                insertbuf "c:\\file.txt" "abc" 32 'b' '' '' 1000
  4380.                  // loads "c:\file.txt" with a binary line length
  4381.                  //   of 32, and inserts it after line 1000 of the
  4382.                  //   buffer "abc"
  4383.  
  4384.  
  4385.   insline      string col row buffer
  4386.   ──────────────────────────────────────────────────────────────────────
  4387.   remarks:     Inserts a new line containing the specified string into a
  4388.                buffer. If 'buffer' is null or not specified, then the
  4389.                current buffer is assumed.
  4390.  
  4391.                If 'row' is specified, the new line is inserted after the
  4392.                specified row, otherwise the new line is inserted after
  4393.                the line at the cursor. If 'col' is specified, the string
  4394.                is placed at the specified column, otherwise the string
  4395.                is placed at column one.
  4396.  
  4397.   returns:     TRUE if successful, otherwise null.
  4398.   see also:    addline, delline, insabove, joinline, splitline
  4399.  
  4400.   example:     insline
  4401.                  // inserts a new line after the line at the cursor
  4402.                  //   in the current buffer
  4403.                insline "New line" 1 (getlines)
  4404.                  // inserts a new line with the text "New line"
  4405.                  //   after the last line in the current buffer
  4406.                insline "New line" 1 1 "abc"
  4407.                  // inserts a new line with the text "New line"
  4408.                  //   after line 1 in the buffer "abc"
  4409.  
  4410.  
  4411.   instext      string col row buffer
  4412.   ──────────────────────────────────────────────────────────────────────
  4413.   remarks:     Inserts the specified string into a buffer at the
  4414.                specified row and column. If 'buffer' is null or not
  4415.                specified, the current buffer is assumed. If 'col' and
  4416.                'row' are not specified, then the string is inserted at
  4417.                the current cursor position.
  4418.  
  4419.   returns:     TRUE if successful, otherwise null.
  4420.   see also:    delchar, ovltext
  4421.  
  4422.   example:     instext "some text"
  4423.                  // inserts 'some text' at the cursor in the current
  4424.                  //   buffer
  4425.                instext "some text" 2 20
  4426.                  // inserts 'some text' at column 2, line 20 in the
  4427.                  //   current buffer
  4428.                instext "some text" 1 1 "abc"
  4429.                  // inserts 'some text' at column 1, line 1 in the
  4430.                  //   buffer 'abc'
  4431.  
  4432.  
  4433.   international  dateopt datesep timeopt timesep thousandssep
  4434.   ──────────────────────────────────────────────────────────────────────
  4435.   remarks:     Defines international system settings. The following
  4436.                settings can be specified:
  4437.  
  4438.                dateopt       - The date format to use [0-2]:
  4439.                                  0 = mm dd yy
  4440.                                  1 = dd mm yy
  4441.                                  2 = yy mm dd
  4442.  
  4443.                datesep       - The character used to separate days,
  4444.                                months, and years
  4445.  
  4446.                timeopt       - The time format to use [0-3]:
  4447.                                  0 = 12hr
  4448.                                  1 = 24hr
  4449.                                  2 = 12hr with seconds
  4450.                                  3 = 24hr with seconds
  4451.  
  4452.                timesep       - The character used to separate hours,
  4453.                                minutes, and seconds
  4454.  
  4455.                thousandssep  - The character used to separate thousands
  4456.                                groups in large numbers
  4457.  
  4458.   returns:     nothing
  4459.   see also:    getdate, gettime, thousands
  4460.  
  4461.  
  4462.   joinline     col row buffer
  4463.   ──────────────────────────────────────────────────────────────────────
  4464.   remarks:     Joins two lines into one line in a buffer. If 'buffer' is
  4465.                null or not specified, then the current buffer is
  4466.                assumed.
  4467.  
  4468.                'row' specifies the first of two lines to be joined, and
  4469.                'col' specifies the column in the first line where the
  4470.                second line is to be appended. If 'col' is less than or
  4471.                equal to the length of the first line, then the second
  4472.                line is appended to the end of the first line.
  4473.  
  4474.                If 'row' and 'col' are not specified, the current cursor
  4475.                position is assumed.
  4476.  
  4477.   returns:     TRUE if successful, otherwise null.
  4478.   see also:    delline, insabove, insline, splitline
  4479.  
  4480.   example:     joinline
  4481.                  // joins the line below the cursor to the current line
  4482.                  //   at the cursor position in the current buffer
  4483.                joinline 1
  4484.                  // appends the line below the cursor to the current line
  4485.                  //   in the current buffer
  4486.  
  4487.  
  4488.   joinstr      delimit+quote string1 string2 ...
  4489.   ──────────────────────────────────────────────────────────────────────
  4490.   remarks:     This function joins any number of strings together into
  4491.                an editor 'multistring'. This differs from normal string
  4492.                concatenation in the following ways:
  4493.  
  4494.                - The delimiter character 'delimit' is inserted between
  4495.                  the component strings.
  4496.  
  4497.                - The character 'quote' is inserted before any
  4498.                  occurrences of the 'delimit' character or the 'quote'
  4499.                  character in the resulting string.
  4500.  
  4501.                If the 'delimit' or 'quote' character are not specified,
  4502.                then the default delimiter character is a slash (/) and
  4503.                the default quote character is a backquote (`).
  4504.  
  4505.   returns:     a multistring
  4506.   see also:    splitstr
  4507.  
  4508.   example:     joinstr '' "abc" "def" "xyz"   // returns "abc/def/xyz"
  4509.                joinstr '' "abc" "d/ef" "xyz"  // returns "abc/d`/ef/xyz"
  4510.                joinstr "|\\" "abc" "x|yz"     // returns "abc|x\|yz"
  4511.  
  4512.  
  4513.   justblock    opt=[clr] mark leftmarg rightmarg
  4514.   ──────────────────────────────────────────────────────────────────────
  4515.   remarks:     Left justifies, right justifies, or centers marked text.
  4516.                If 'mark' is not specified, the default markid is
  4517.                assumed.
  4518.  
  4519.                For column marks, the text is justified to fit between
  4520.                the left and right edges of the mark. For all other
  4521.                marks, the text is justified to fit between 'leftmarg'
  4522.                and 'rightmarg'.
  4523.  
  4524.                One of the following options may be specified:
  4525.  
  4526.                  c - center the text
  4527.                  l - left justify the text
  4528.                  r - right justify the text
  4529.  
  4530.                If no options are specified, then 'l' is assumed.
  4531.  
  4532.   returns:     TRUE if successful, otherwise null.
  4533.   see also:    formatblock
  4534.  
  4535.  
  4536.   kbdoptions   opt=[egw]
  4537.   ──────────────────────────────────────────────────────────────────────
  4538.   remarks:     Sets various keyboard options. Any of the following
  4539.                options may be specified:
  4540.  
  4541.                  e - enable enhanced keyboard keys
  4542.                  g - enable unshifted grey keypad function keys
  4543.                        (<grey*>, <grey->, <grey+>)
  4544.                  w - enable shifted white keypad function keys
  4545.                        (<shift del>, <shift ins>, <shift end>, etc.)
  4546.   returns:     nothing
  4547.  
  4548.  
  4549.   keyhit? 
  4550.   ──────────────────────────────────────────────────────────────────────
  4551.   remarks:     Test if non-shift key has been pressed.
  4552.   returns:     TRUE if a key has been pressed and not processed,
  4553.                otherwise null.
  4554.   see also:    event?, shiftkey?
  4555.  
  4556.  
  4557.   lastpos      buffer
  4558.   ──────────────────────────────────────────────────────────────────────
  4559.   remarks:     Moves the cursor to the last cursor position. If 'buffer'
  4560.                is null or not specified, the current buffer is assumed.
  4561.   returns:     TRUE if successful, otherwise null.
  4562.   see also:    gotopos
  4563.  
  4564.  
  4565.   left         cols buffer
  4566.   ──────────────────────────────────────────────────────────────────────
  4567.   remarks:     Moves the cursor to the left. 'cols' specifies the number
  4568.                of columns to move. If 'cols' is not specified, one is
  4569.                assumed. If 'buffer' is null or not specified, the
  4570.                current buffer is assumed.
  4571.  
  4572.   returns:     the new cursor column if successful, otherwise null.
  4573.   see also:    down, right, up
  4574.  
  4575.   example:     left       // moves the cursor left 1 column
  4576.                left 5     // moves the cursor left 5 columns
  4577.  
  4578.  
  4579.   lineflag     opt=[m-] row buffer
  4580.   ──────────────────────────────────────────────────────────────────────
  4581.   remarks:     Turns line flags on or off, or tests if a line flag is
  4582.                turned on. If 'buffer' is null or not specified, the
  4583.                current buffer is assumed. If 'row' is not specified, the
  4584.                line at the cursor is assumed. The following flags can be
  4585.                specified:
  4586.  
  4587.                  m - line modified or 'dirty' flag
  4588.                  - - turn specified flags off
  4589.                  + - turn specified flags on
  4590.                  ? - return true if specified flags are on
  4591.  
  4592.                If flags are specified without -, +, or ?, then they will
  4593.                be turned on and any other flags not specified will be
  4594.                turned off.
  4595.  
  4596.   returns:     TRUE if '?' is specified with flags that are on,
  4597.                otherwise null
  4598.   see also:    bufferflag
  4599.  
  4600.   example:     lineflag "-m"
  4601.                  // turns off the modified flag for the current buffer
  4602.  
  4603.  
  4604.   listbox      title x y buffer width height                    [Lib][a]
  4605.   ──────────────────────────────────────────────────────────────────────
  4606.   remarks:     Adds a list box window control to the current dialog box.
  4607.                The listbox window becomes the current window. A list box
  4608.                displays a buffer in scrollable window, allowing a line
  4609.                to be selected from the buffer. The following parameters
  4610.                may be specified:
  4611.  
  4612.                title     - the list box title
  4613.                x         - the list box x-position in the dialog box
  4614.                y         - the list box y-position in the dialog box
  4615.                buffer    - the buffer to display in the list box
  4616.                width     - the list box width (if not specified, the
  4617.                            title width is used)
  4618.                height    - the list box height (if not specified, the
  4619.                            number of lines in the buffer is used)
  4620.  
  4621.   returns:     The group box window id.
  4622.  
  4623.   see also:    button, dialog, field, groupbox, whenenter, whenselect
  4624.  
  4625.   example:     dialog "Test Dialog Box" 40 17
  4626.                  // create a dialog box
  4627.                listbox "&Listbox:" 3 2 (loadbuf "C:\\*.*") 16 12
  4628.                  // add a list box displaying a directory of drive C
  4629.                getdialog
  4630.                  // display the dialog box
  4631.  
  4632.  
  4633.   loadbuf      filespec buffer delim/binlen opt=[bxdfhkvqscu] trunc comment
  4634.   ──────────────────────────────────────────────────────────────────────
  4635.   remarks:     Loads a file or directory into a new buffer. If 'buffer'
  4636.                is null or not specified, a unique bufferid will be
  4637.                assigned. The new buffer will become the current buffer.
  4638.  
  4639.                The buffer name of the new buffer will automatically be
  4640.                set to 'filespec'. The 'setbufname' function is generally
  4641.                not required (see 'setbufname').
  4642.  
  4643.                The following options may be specified when loading
  4644.                files:
  4645.  
  4646.                  b - load the file in binary mode. The third argument
  4647.                      specifies the binary line length.
  4648.                  x - disable conversion of fold comments to folds
  4649.  
  4650.                The following options may be specified when loading
  4651.                directories:
  4652.  
  4653.                  d - include subdirectories
  4654.                  f - include normal files
  4655.                  h - include hidden/system files
  4656.                  k - shows file sizes in 1k increments
  4657.                  q - qualify names with the directory name. This option
  4658.                      can only be specified with option 'v'.
  4659.                  s - load the directory in 'short' format (name only,
  4660.                      starting at column one). This option can only be
  4661.                      specified with option 'v'.
  4662.                  v - load the directory in variable format
  4663.  
  4664.                  c - show names capitalized
  4665.                  l - show names in lowercase
  4666.                  u - show names in uppercase
  4667.  
  4668.                If options 'c', 'l', or 'u' are not specified, names are
  4669.                shown 'as-is' from the operating system.
  4670.  
  4671.                If option 'b' is specified, the file is loaded in binary
  4672.                mode and the third argument specifies a fixed binary line
  4673.                length. If the third argument is not specified, the
  4674.                default binary line length is 64.
  4675.  
  4676.                If option 'b' is not specified, the third argument
  4677.                specifies a one or two byte line delimiter string to use.
  4678.                If the third argument is not specified, a line delimiter
  4679.                of 0D0Ah (CR/LF) is assumed.
  4680.  
  4681.                The argument 'trunc' specifies the length at which lines
  4682.                are truncated. If 'trunc' is zero or not specified, the
  4683.                editor maximum (16000) is assumed.
  4684.  
  4685.                The argument 'comment' specifies the fold comment string
  4686.                to look for when converting fold comments to text folds
  4687.                during the loading process. Specifying option 'x'
  4688.                disables the conversion.
  4689.  
  4690.                Note: this function will not display the new buffer in a
  4691.                window. The 'openbuf' or 'popup' library functions should
  4692.                be used to display the buffer.
  4693.  
  4694.   returns:     The new bufferid if successful, otherwise null.
  4695.  
  4696.   see also:    asciibuf, createbbuf, createbuf, destroybuf, getloadinfo,
  4697.                insertbuf, menu, popup, setbufname
  4698.  
  4699.   example:     loadbuf "c:\\file.txt"
  4700.                  // loads 'c:\file.txt' into a new buffer (using line
  4701.                  //   delimiter CR/LF) and returns a unique bufferid
  4702.                loadbuf "c:\\file.txt" "abc"
  4703.                  // loads 'c:\file.txt' into a new buffer with the
  4704.                  //   bufferid 'abc'
  4705.                loadbuf "c:\\file.txt" '' (hex2bin "0A")
  4706.                  // loads 'c:\file.txt' into a new buffer using line
  4707.                  //   delimiter '0A' (LF) and returns a unique bufferid
  4708.                loadbuf "c:\\file.txt" '' 25 'b'
  4709.                  // loads 'c:\file.txt' into a new binary buffer with
  4710.                  //   a fixed line length of 25 and returns a unique
  4711.                  //   bufferid
  4712.  
  4713.  
  4714.   loadobject   file object arg3 arg4 ...
  4715.   ──────────────────────────────────────────────────────────────────────
  4716.   remarks:     Loads an object from a file. This function is similar to
  4717.                the 'runmacro' function, with the following differences:
  4718.  
  4719.                - the loaded object (macro) automatically remains
  4720.                  resident - 'resident ON' is not required.
  4721.                - the loaded object does not initially inherit anything
  4722.                  from any other objects.
  4723.                - the current event object is not modified
  4724.                - the objectid is returned
  4725.  
  4726.   returns:     the objectid of the loaded object
  4727.   see also:    createobject, destroyobject, object, resident, runmacro
  4728.  
  4729.  
  4730.   locase       string
  4731.   ──────────────────────────────────────────────────────────────────────
  4732.   remarks:     Converts a string to lowercase.
  4733.   returns:     the string in lowercase.
  4734.   see also:    upcase  flipcase
  4735.   example:     locase "PEACHES"           // returns "peaches"
  4736.  
  4737.  
  4738.   locatefile   filespec path opt=[df]
  4739.   ──────────────────────────────────────────────────────────────────────
  4740.   remarks:     Searches a path for a filename or directory. 'path' can
  4741.                be a list of paths separated by semicolons (;) (as
  4742.                specified in the Dos 'PATH' environment string).
  4743.  
  4744.                Any of the following options may be specified:
  4745.  
  4746.                  d - search for a directory
  4747.                  f - search for a file
  4748.  
  4749.                If no options are specified, then 'df' is assumed.
  4750.  
  4751.   returns:     the fully qualified filename or directory if found,
  4752.                otherwise null.
  4753.  
  4754.   see also:    createdir, directory?, file?, scanfile
  4755.  
  4756.   example:     locatefile "file.txt" "c:\\"
  4757.                  // returns c:\file.txt, if file.txt is found in c:\
  4758.                locatefile "file.txt" (getenv "PATH")
  4759.                  // returns file.txt (fully qualified), if file.txt is
  4760.                  //   found in the Dos PATH
  4761.                locatefile "macro" "d:\\aurora" 'd'
  4762.                  // returns d:\macro\aurora, if macro is a directory
  4763.                  //   in d:\aurora
  4764.  
  4765.  
  4766.   lookup       variable object
  4767.   ──────────────────────────────────────────────────────────────────────
  4768.   remarks:     Gets the value of a public object variable defined by
  4769.                'variable' in the object defined by 'object'. If 'object'
  4770.                is not specified, the current object is assumed.
  4771.  
  4772.   returns:     the value of the object variable if it exists, otherwise
  4773.                null.
  4774.  
  4775.   see also:    function?, set, variable?
  4776.  
  4777.   example:     lookup "VidCols"
  4778.                lookup "Vid" + "Cols" "prf"
  4779.  
  4780.                lookup myvar
  4781.                  // returns the value of an object variable whose
  4782.                  //   name is the value of 'myvar'
  4783.  
  4784.  
  4785.   machine      code arg1 arg2 ..
  4786.   ──────────────────────────────────────────────────────────────────────
  4787.   remarks:     Executes machine-level code.  This function executes the
  4788.                string specified by 'code' directly as 80x86 machine
  4789.                language code, passing the arguments arg1, arg2 on the
  4790.                stack. The machine code must not contain any external
  4791.                fixups or relocation items - all references must be
  4792.                relative the code itself. The stack size should not be
  4793.                assumed to be larger than 300 bytes.
  4794.  
  4795.                Parameters are passed on the stack from right to left,
  4796.                using the 'C' calling convention. Numbers are passed as
  4797.                long integers (4 bytes), with the high order word pushed
  4798.                first, followed by the low order word. Strings are passed
  4799.                as segment:offset far pointers (4 bytes) to the string
  4800.                contents, with the segment pushed first, followed by the
  4801.                offset.
  4802.  
  4803.                On entry to the machine code, the register ax contains
  4804.                the number of parameters passed, and register bx contains
  4805.                a 'type mask', where each bit indicates the argument type
  4806.                (numeric=0, string=1). For example, if one argument is
  4807.                passed and the first bit of bx is On, then the argument
  4808.                is a string (far pointer), otherwise it is a number (long
  4809.                integer).
  4810.  
  4811.                The machine code is executed with a far call, and
  4812.                therefore must return with a far return. Do not pop any
  4813.                arguments off the stack - this will be done by the
  4814.                machine function. Only register bp must be preserved, if
  4815.                used).
  4816.  
  4817.   returns:     a long integer, with the high word equal to register dx
  4818.                and the low word equal to register ax at the time the
  4819.                machine code returns.
  4820.  
  4821.   example:     see macro\machine.aml and macro\machine.asm
  4822.  
  4823.  
  4824.   mark?        mark
  4825.   ──────────────────────────────────────────────────────────────────────
  4826.   remarks:     Tests if a mark exists. If 'mark' is not specified, then
  4827.                the default markid is assumed.
  4828.   returns:     TRUE if the mark exists, otherwise null.
  4829.   see also:    inmark?
  4830.  
  4831.  
  4832.   markchar     startcol endcol toprow botrow mark buffer
  4833.   ──────────────────────────────────────────────────────────────────────
  4834.   remarks:     Creates, extends, or modifies a character mark. A
  4835.                character mark designates a stream of one or more
  4836.                characters in a buffer. If 'buffer' is null or not
  4837.                specified, the current buffer is assumed. If 'mark' is
  4838.                not specified, the default markid is assumed.
  4839.  
  4840.                If the mark does not exist, then a new mark is created.
  4841.                If the mark already exists and is not located in the
  4842.                specified buffer, then it is moved there.
  4843.  
  4844.                The mark will be sized to span from 'startcol','toprow'
  4845.                to 'endcol','botrow'. If none of these are specified,
  4846.                then the cursor line and column are assumed and the mark
  4847.                is left 'open' (moving the cursor resizes the mark). If
  4848.                the mark was already open, then it is closed.
  4849.  
  4850.   returns:     The markid of the new mark if created, otherwise null.
  4851.  
  4852.   see also:    destroymark, extendmark, markcolumn, markline,
  4853.                markstream, stopmark
  4854.  
  4855.   example:     markchar
  4856.                  // marks the character at the cursor using the default
  4857.                  //   markid and leaves the mark 'open'.
  4858.  
  4859.  
  4860.   markcolumn   leftcol rightcol toprow botrow mark buffer
  4861.   ──────────────────────────────────────────────────────────────────────
  4862.   remarks:     Creates, extends, or modifies a rectangular column mark.
  4863.                If 'buffer' is null or not specified, then the current
  4864.                buffer is assumed. If 'mark' is not specified, the
  4865.                default markid is assumed.
  4866.  
  4867.                If the mark does not exist, then a new mark is created.
  4868.                If the mark already exists and is not located in the
  4869.                specified buffer, then it is moved there.
  4870.  
  4871.                The mark will be sized to span from 'leftcol','toprow' to
  4872.                'rightcol','botrow'. If none of these are specified, then
  4873.                the cursor line and column are assumed and the mark is
  4874.                left 'open' (moving the cursor resizes the mark). If the
  4875.                mark was already open, then it is closed.
  4876.  
  4877.   returns:     The markid of the new mark if created, otherwise null.
  4878.  
  4879.   see also:    destroymark, extendmark, markchar, markline, markstream,
  4880.                stopmark
  4881.  
  4882.   example:     markcolumn
  4883.                  // marks the character at the cursor using the default
  4884.                  //   markid and leaves the mark 'open'.
  4885.                markcolumn 1 1 1 (getlines)
  4886.                  // marks the first column of the entire buffer using
  4887.                  // the default markid
  4888.  
  4889.  
  4890.   markline     toprow botrow mark buffer
  4891.   ──────────────────────────────────────────────────────────────────────
  4892.   remarks:     Creates, extends, or modifies a line mark. If 'buffer' is
  4893.                null or not specified, then the current buffer is
  4894.                assumed. If 'mark' is not specified, the default markid
  4895.                is assumed.
  4896.  
  4897.                If the mark does not exist, then a new mark is created.
  4898.                If the mark already exists and is not located in the
  4899.                specified buffer, then it is moved there.
  4900.  
  4901.                The mark will be sized to span from 'toprow' to 'botrow'.
  4902.                If 'toprow' and 'botrow' are not specified, then the line
  4903.                at the cursor is assumed and the mark is left 'open'
  4904.                (moving the cursor resizes the mark). If the mark was
  4905.                already open, then it is closed.
  4906.  
  4907.   returns:     The markid of the new mark if created, otherwise null.
  4908.  
  4909.   see also:    destroymark, extendmark, markchar, markcolumn,
  4910.                markstream, stopmark
  4911.  
  4912.   example:     markline
  4913.                  // marks the current line in the current buffer using
  4914.                  //   the default markid, and leaves the mark 'open'
  4915.                markline 1 (getlines)
  4916.                  // marks the entire buffer using the default markid
  4917.                markline '' '' 'T'
  4918.                  // marks the current line using the markid 'T'
  4919.  
  4920.  
  4921.   markstream   startcol endcol toprow botrow mark buffer
  4922.   ──────────────────────────────────────────────────────────────────────
  4923.   remarks:     Creates, extends, or modifies a stream mark. A stream
  4924.                mark designates a stream of zero or more characters in a
  4925.                buffer and does not include 'endcol' on the row 'botrow'.
  4926.                If 'buffer' is null or not specified, then the current
  4927.                buffer is assumed. If 'mark' is not specified, the
  4928.                default markid is assumed.
  4929.  
  4930.                If the mark does not exist, then a new mark is created.
  4931.                If the mark already exists and is not located in the
  4932.                specified buffer, then it is moved there.
  4933.  
  4934.                The mark will be sized to span from 'startcol','toprow'
  4935.                to 'endcol','botrow'. If none of these are specified,
  4936.                then the cursor line and column are assumed and the mark
  4937.                is left 'open' (moving the cursor resizes the mark). If
  4938.                the mark was already open, then it is closed.
  4939.  
  4940.   returns:     The markid of the new mark if created, otherwise null.
  4941.  
  4942.   see also:    destroymark, extendmark, markchar, markcolumn, markline,
  4943.                stopmark
  4944.  
  4945.   example:     markstream
  4946.                  // opens a stream mark at the cursor position with the
  4947.                  //   default markid. Characters will not be marked
  4948.                  //   until the cursor is moved.
  4949.  
  4950.  
  4951.   max?         window                                           [Lib][a]
  4952.   ──────────────────────────────────────────────────────────────────────
  4953.   remarks:     Tests if a window is maximized. If 'window' is not
  4954.                specified, the current window is assumed.
  4955.   returns:     TRUE if the window is maximized, otherwise null.
  4956.   see also:    min?
  4957.  
  4958.  
  4959.   maxems       size
  4960.   ──────────────────────────────────────────────────────────────────────
  4961.   remarks:     Specifies the maximum amount of EMS memory the editor may
  4962.                use, in 1k increments. If -1 is specified, the maximum
  4963.                available EMS will be used. All available XMS memory will
  4964.                be used before EMS memory is used.
  4965.  
  4966.                Note: this function may only be called once during an
  4967.                edit session. An EMS driver must be installed before EMS
  4968.                memory can be used.
  4969.  
  4970.   returns:     Non-zero if successful, otherwise zero.
  4971.   see also:    maxxms, memoptions, swapfiles
  4972.  
  4973.  
  4974.   maximize     window                                           [Lib][a]
  4975.   ──────────────────────────────────────────────────────────────────────
  4976.   remarks:     Maximizes the specified window. If 'window' is not
  4977.                specified, the current window is assumed.
  4978.   returns:     nothing
  4979.   see also:    max?, min?, minimize, restore
  4980.  
  4981.  
  4982.   maxxms       size
  4983.   ──────────────────────────────────────────────────────────────────────
  4984.   remarks:     Specifies the maximum amount of XMS memory the editor may
  4985.                use, in 1k increments. If -1 is specified, the maximum
  4986.                available XMS will be used.
  4987.  
  4988.                Note: this function may only be called once during an
  4989.                edit session. An XMS driver must be installed before XMS
  4990.                memory can be used.
  4991.  
  4992.   returns:     Non-zero if successful, otherwise zero.
  4993.   see also:    maxems, memoptions, swapfiles
  4994.  
  4995.  
  4996.   memoptions   opt=[o]
  4997.   ──────────────────────────────────────────────────────────────────────
  4998.   remarks:     Specifies memory usage options. The following options may
  4999.                be specified:
  5000.  
  5001.                  o - allows large files to left open (in Dos) after
  5002.                      loading, increasing performance when loading large
  5003.                      files.
  5004.  
  5005.   returns:     nothing
  5006.   see also:    maxems, maxxms, swapfiles
  5007.  
  5008.  
  5009.   min?         window                                           [Lib][a]
  5010.   ──────────────────────────────────────────────────────────────────────
  5011.   remarks:     Tests if a window is minimized. If 'window' is not
  5012.                specified, the current window is assumed.
  5013.   returns:     TRUE if the window is minimized, otherwise null.
  5014.   see also:    max?
  5015.  
  5016.  
  5017.   minimize     window                                           [Lib][a]
  5018.   ──────────────────────────────────────────────────────────────────────
  5019.   remarks:     Minimizes the specified window. If 'window' is not
  5020.                specified, the current window is assumed.
  5021.   returns:     nothing
  5022.   see also:    max?, maximize, min?, restore
  5023.  
  5024.  
  5025.   mono? 
  5026.   ──────────────────────────────────────────────────────────────────────
  5027.   remarks:     Tests if the editor is operating in monochrome mode.
  5028.   returns:     TRUE if the editor is in monochrome mode, otherwise null.
  5029.  
  5030.  
  5031.   mousepos     virtualX virtualY
  5032.   ──────────────────────────────────────────────────────────────────────
  5033.   remarks:     Moves the mouse pointer to the specified virtual X and
  5034.                virtual Y coordinates on the screen.
  5035.  
  5036.   returns:     nothing
  5037.   see also:    getmousex, getmousey, openmouse
  5038.  
  5039.   example:     mousepos 16000 16000
  5040.                  // moves the mouse pointer to the upper left
  5041.                  //   of the virtual screen at startup
  5042.                mousepos  15999 + getvidcols  15999 + getvidrows
  5043.                  // moves the mouse pointer to the lower right
  5044.                  //   of the virtual screen at startup
  5045.  
  5046.  
  5047.   mousesense   horz vert doublespeed
  5048.   ──────────────────────────────────────────────────────────────────────
  5049.   remarks:     Changes the mouse sensitivity by setting the horizontal
  5050.                mickey-to-pixel and vertical mickey-to-pixel ratios, and
  5051.                by setting the double speed threshold. The default mouse
  5052.                sensitivity after calling 'openmouse' are:
  5053.  
  5054.                Horz mickey-to-pixel ratio:   8
  5055.                Vert mickey-to-pixel ratio:  16
  5056.                Double speed threshold:      64
  5057.  
  5058.                Lower numbers for these parameters result in increased
  5059.                sensitivity.
  5060.  
  5061.   returns:     nothing
  5062.   see also:    openmouse
  5063.  
  5064.   example:     mousesense 5 12 50             // more sensitive mouse
  5065.  
  5066.  
  5067.   moveblock    mark buffer col row
  5068.   ──────────────────────────────────────────────────────────────────────
  5069.   remarks:     Moves marked text after the specified column and row
  5070.                position in the specified buffer. The text is inserted at
  5071.                the new position and the mark is moved to the new
  5072.                position.
  5073.  
  5074.                If 'mark' is not specified, the default markid is
  5075.                assumed. If 'buffer' is null or not specified, the
  5076.                current buffer is assumed. If 'col' and 'row' are not
  5077.                specified, the current cursor position is assumed.
  5078.  
  5079.   returns:     TRUE if successful, otherwise null.
  5080.   see also:    copyblock, copyblockover
  5081.  
  5082.  
  5083.   movepos      (+/-)cols (+/-)rows buffer
  5084.   ──────────────────────────────────────────────────────────────────────
  5085.   remarks:     Moves the cursor a relative number of columns and rows
  5086.                away from the current position. If 'buffer' is null or
  5087.                not specified, the current buffer is assumed.
  5088.  
  5089.   returns:     the new cursor line number if successful, otherwise null.
  5090.   see also:    col, down, gotopos, left, right, row, up
  5091.  
  5092.   example:     movepos 2 3
  5093.                   // moves the cursor right 2 columns and down 3 rows
  5094.  
  5095.  
  5096.   movewindow   x y opt=[acdrswz1] window relativewindow
  5097.   ──────────────────────────────────────────────────────────────────────
  5098.   remarks:     Changes the position of a window. If 'window' is not
  5099.                specified, the current window is assumed. 'x' and 'y'
  5100.                specify the new window coordinates. See the 'sizewindow'
  5101.                function for a description of the coordinates and
  5102.                available options.
  5103.  
  5104.                This call is nearly identical to the 'sizewindow'
  5105.                function, except that only the position of the window can
  5106.                be changed.
  5107.  
  5108.   returns:     TRUE if successful, otherwise null.
  5109.   see also:    getcoord, sizewindow
  5110.  
  5111.  
  5112.   msgbox       message title opt=[b]                            [Lib][a]
  5113.   ──────────────────────────────────────────────────────────────────────
  5114.   remarks:     Displays the specified message in a popup window with an
  5115.                'Ok' button. If a title is not specified, 'Message' is
  5116.                assumed. If option 'b' is specified, the PC speaker
  5117.                beeps.
  5118.  
  5119.   returns:     nothing
  5120.   see also:    okbox, say, shortbox, yncbox
  5121.  
  5122.   example:     msgbox "Hello World"
  5123.  
  5124.  
  5125.   nextfile                                                   [Lib][edit]
  5126.   ──────────────────────────────────────────────────────────────────────
  5127.   remarks:     Makes the next buffer in the buffer list the current
  5128.                buffer, and displays it in the current edit window. The
  5129.                buffer previously displayed in the edit window will not
  5130.                be destroyed.
  5131.   returns:     nothing
  5132.   see also:    filelist, prevfile
  5133.  
  5134.  
  5135.   nexthist                                                 [Lib][prompt]
  5136.   ──────────────────────────────────────────────────────────────────────
  5137.   remarks:     Displays the next history string in a prompt. This
  5138.                function is only for use within prompts.
  5139.   returns:     nothing
  5140.   see also:    gethistname, prevhist
  5141.  
  5142.  
  5143.   nextwindow                                                  [Lib][win]
  5144.   ──────────────────────────────────────────────────────────────────────
  5145.   remarks:     Switches the focus to the next window on the screen.
  5146.   returns:     nothing
  5147.   see also:    prevwindow
  5148.  
  5149.  
  5150.   object?      object
  5151.   ──────────────────────────────────────────────────────────────────────
  5152.   remarks:     Tests if an object exists. If 'object' is not specified,
  5153.                then the current object is assumed.
  5154.   returns:     TRUE if the object exists, otherwise null.
  5155.   see also:    destroyobject, object, objtype?
  5156.  
  5157.  
  5158.   objtype?     parentobj object
  5159.   ──────────────────────────────────────────────────────────────────────
  5160.   remarks:     Tests if the object 'parentobj' is located in the
  5161.                inheritance path of the specified object. If 'object' is
  5162.                not specified, the current object is assumed.
  5163.   returns:     TRUE if 'parentobj' is a parent object of 'object',
  5164.                otherwise null.
  5165.   see also:    inheritfrom, object, object?, wintype?
  5166.  
  5167.  
  5168.   okbox        message title                                    [Lib][a]
  5169.   ──────────────────────────────────────────────────────────────────────
  5170.   remarks:     Displays the specified message in a popup window with
  5171.                'Ok' and 'Cancel' buttons. If a title is not specified,
  5172.                'Message' is assumed.
  5173.  
  5174.   returns:     The name of the button pressed (Ok or Cancel), or null if
  5175.                no button was pressed.
  5176.   see also:    msgbox, say, shortbox, yncbox
  5177.  
  5178.   example:     if (okbox "Delete the file?" "Delete") == 'Ok' then 
  5179.                  :
  5180.                end 
  5181.  
  5182.  
  5183.   onalarm                                                          [Lib]
  5184.   ──────────────────────────────────────────────────────────────────────
  5185.   remarks:     This event is sent by the editor library (Lib.x) when
  5186.                sounding the PC speaker to call attention to a message.
  5187.                This event can be used to customize the alarm sound.
  5188.                'onalarm' is sent directly to the current event object
  5189.                and is not passed any parameters.
  5190.  
  5191.   returns:     none required
  5192.  
  5193.   example:     function onalarm
  5194.                  // customized alarm sound
  5195.                  beep 950 30
  5196.                  beep 750 30
  5197.                end 
  5198.  
  5199.  
  5200.   onclose                                                          [Lib]
  5201.   ──────────────────────────────────────────────────────────────────────
  5202.   remarks:     This event is sent by the editor library (Lib.x) when a
  5203.                file or file manager window is closed and removed from
  5204.                memory.
  5205.  
  5206.                'onclose' is sent directly to the current event object
  5207.                and is not passed any parameters.
  5208.  
  5209.   returns:     none required
  5210.   see also:    onfocus, onopen, onsave
  5211.   example:     see the configuration file Ext.aml
  5212.  
  5213.  
  5214.   onclosedlg   button windowid                                  [Lib][a]
  5215.   ──────────────────────────────────────────────────────────────────────
  5216.   remarks:     This event is sent by the editor library (Lib.x) to the
  5217.                dialog box notification object when a dialog box is
  5218.                closed. The button used to close the dialog box is passed
  5219.                as the first argument, and the windowid of the dialog box
  5220.                is passed as the second argument.
  5221.   returns:     none required
  5222.   see also:    dialog, ondialog
  5223.  
  5224.  
  5225.   oncomment    filename comment1 comment2                       [Lib][a]
  5226.   ──────────────────────────────────────────────────────────────────────
  5227.   remarks:     This event is sent by the editor library (Lib.x) and
  5228.                extension code (Ext.aml) to retrieve the language
  5229.                comments associated with a filename.
  5230.  
  5231.                'oncomment' is sent directly to the current event object
  5232.                and is passed the filename as the first argument.
  5233.                'comment1' and 'comment2' are passed by reference and
  5234.                should be modified within 'oncomment' to return comment
  5235.                symbols.
  5236.  
  5237.   returns:     comment1 and comment2 (by reference)
  5238.   example:     see Ext.aml.
  5239.  
  5240.  
  5241.   ondesk                                                        [Lib][a]
  5242.   ──────────────────────────────────────────────────────────────────────
  5243.   remarks:     This event is sent by the editor library (Lib.x) after
  5244.                the desktop is restored via the restoredesk function.
  5245.   returns:     none required
  5246.  
  5247.  
  5248.   ondialog     keycode                                          [Lib][a]
  5249.   ──────────────────────────────────────────────────────────────────────
  5250.   remarks:     This event is sent by the editor library (Lib.x) to the
  5251.                dialog box notification object when an unrecognized
  5252.                dialog box key is entered from the dialog box. The
  5253.                keycode of the key as passed as the first argument.
  5254.   returns:     none required
  5255.   see also:    onclosedlg
  5256.  
  5257.  
  5258.   onentry      dosarg1 dosarg2 ...                                 [Lib]
  5259.   ──────────────────────────────────────────────────────────────────────
  5260.   remarks:     This event is queued by the editor library (Lib.x) after
  5261.                the default macro file A.x is loaded and executed.
  5262.  
  5263.                'onentry' is typically used to perform a variety of
  5264.                editor initialization tasks, load Dos command line files,
  5265.                and process user-defined command line options.
  5266.  
  5267.                'onentry' is queued for execution (not sent directly),
  5268.                and executes in the current event object. Any arguments
  5269.                passed to A.exe on the Dos command line are also passed
  5270.                to 'onentry'.
  5271.  
  5272.   returns:     none required
  5273.   see also:    onexit
  5274.   example:     see the configuration file Ext.aml
  5275.  
  5276.  
  5277.   onexit                                                           [Lib]
  5278.   ──────────────────────────────────────────────────────────────────────
  5279.   remarks:     This event is sent by the editor library (Lib.x) when an
  5280.                edit session is ended and control is returned to Dos.
  5281.                This function is typically used to perform a variety of
  5282.                final-exit cleanup tasks.
  5283.  
  5284.                'onexit' is sent directly to the current event object and
  5285.                is not passed any parameters.
  5286.  
  5287.   returns:     none required
  5288.   see also:    onentry
  5289.   example:     see the configuration file Ext.aml
  5290.  
  5291.  
  5292.   onfocus                                                          [Lib]
  5293.   ──────────────────────────────────────────────────────────────────────
  5294.   remarks:     This event is sent by the editor library (Lib.x) after
  5295.                the focus is switched to another file or file manager
  5296.                window. 'onfocus' is sent directly to the current event
  5297.                object and is not passed any parameters.
  5298.   returns:     none required
  5299.   see also:    onclose, onkillfocus, onopen, onsave
  5300.  
  5301.  
  5302.   onfound      stringlength                                  [Ext][edit]
  5303.   ──────────────────────────────────────────────────────────────────────
  5304.   remarks:     This event is sent by the editor library (Lib.x) and
  5305.                extension code (Ext.aml) when a string is found in the
  5306.                current buffer. Typically, this function is used to
  5307.                change the window view and/or highlight the string found.
  5308.  
  5309.                'onfound' is sent directly to the current event object
  5310.                and is passed the length of the string.
  5311.  
  5312.   returns:     none required
  5313.   see also:    onhotkey
  5314.  
  5315.   example:     function onfound (length)
  5316.                  :
  5317.                  // highlights the string found with the color
  5318.                  //   white on magenta
  5319.                  hilite length 1 95
  5320.                end 
  5321.  
  5322.  
  5323.   onhotkey     character                                     [Ext][edit]
  5324.   ──────────────────────────────────────────────────────────────────────
  5325.   remarks:     This event is sent by the editor library (Lib.x) and
  5326.                extension code (Ext.aml) when a when a hotkey is entered
  5327.                from the file manager or a file picklist. Typically, this
  5328.                function is used to jump to a file beginning with the
  5329.                hotkey character
  5330.  
  5331.                'onhotkey' is sent directly to the current event object
  5332.                and is passed the hotkey character.
  5333.  
  5334.   returns:     none required
  5335.   see also:    onfound
  5336.  
  5337.  
  5338.   onkillfocus                                                      [Lib]
  5339.   ──────────────────────────────────────────────────────────────────────
  5340.   remarks:     This event is sent by the editor library (Lib.x) when a
  5341.                window is about to lose the focus. 'onkillfocus' is sent
  5342.                directly to the current event object and is not passed
  5343.                any parameters.
  5344.   returns:     none required
  5345.   see also:    onfocus
  5346.  
  5347.  
  5348.   onname       filespec options                                 [Lib][a]
  5349.   ──────────────────────────────────────────────────────────────────────
  5350.   remarks:     This event is sent whenever an edit window or file
  5351.                manager window title bar is set, or whenever a
  5352.                filename/filespec needs to be formatted using the
  5353.                NameStyle configuration setting. The onname event
  5354.                handling function returns the formatted filename.
  5355.  
  5356.                The option 't' is passed if the filename is to be
  5357.                displayed on a window title bar. This allows the onname
  5358.                event handling function do optional 'name compression'
  5359.                for long names (i.e. c:\dir\...\file.ext).
  5360.  
  5361.                This event is sent from many locations in Lib.x, Ext.aml,
  5362.                and external macros. The event handling functon for
  5363.                onname is located in Ext.aml. Note that onname is not
  5364.                called for each file in a file manager listing when the
  5365.                listing is initially opened.
  5366.  
  5367.   returns:     the formatted name
  5368.   example:     see the configuration file Ext.aml
  5369.  
  5370.  
  5371.   onopen       options                                             [Lib]
  5372.   ──────────────────────────────────────────────────────────────────────
  5373.   remarks:     This event is sent by the editor library (Lib.x) whenever
  5374.                a new file or file manager window is opened. This event
  5375.                is only sent once when the file is initially opened, or
  5376.                when the file manager window is initially created (not
  5377.                when switching to other files or windows).
  5378.  
  5379.                'onopen' can be used to perform a variety of
  5380.                initialization tasks on the newly opened file, such as
  5381.                turning on settings based on file extension, altering the
  5382.                position in the file, setting tabs, etc.
  5383.  
  5384.                'onopen' is sent directly to the current event object
  5385.                after the file or directory is loaded and before the
  5386.                window is displayed. The open options used to open the
  5387.                window are passed to 'onopen'.
  5388.  
  5389.   returns:     none required
  5390.   see also:    onclose, onfocus, onsave
  5391.  
  5392.  
  5393.   onsave       filename                                      [Ext][edit]
  5394.   ──────────────────────────────────────────────────────────────────────
  5395.   remarks:     This event is sent by the editor extension code (Ext.aml)
  5396.                immediately before a file is saved. 'onsave' is sent
  5397.                directly to the current event object. The name of the
  5398.                file being saved is passed to 'onsave'.
  5399.   returns:     none required
  5400.   see also:    onclose, onopen
  5401.  
  5402.  
  5403.   onsyntax     filename                                         [Lib][a]
  5404.   ──────────────────────────────────────────────────────────────────────
  5405.   remarks:     This event is sent by the editor library (Lib.x) and
  5406.                extension code (Ext.aml) to retrieve the syntax
  5407.                highlighting object to be associated with a filename.
  5408.  
  5409.                'onsyntax' is sent directly to the current event object
  5410.                and is passed the filename. 'onsyntax' should return the
  5411.                syntax highlighting object associated with the filename.
  5412.  
  5413.   returns:     a syntax highlighting object.
  5414.   example:     see Syntax.aml.
  5415.  
  5416.  
  5417.   open         filespec opt=[bcefilhnprvz]                      [Lib][a]
  5418.   ──────────────────────────────────────────────────────────────────────
  5419.   remarks:     Opens the specified file or directory. If a file is
  5420.                specified, then an edit window is opened, otherwise a
  5421.                file manager window is opened. If nothing is specified,
  5422.                then the directory '*.*' is assumed.
  5423.  
  5424.                The following open options may be specified:
  5425.  
  5426.                  b - opens the file in binary mode. The binary line length
  5427.                      can be specified after the option 'b'. For example,
  5428.  
  5429.                        open "file.ext" "b20"
  5430.  
  5431.                      In the example above, a file is opened with a
  5432.                      binary line length of 20. If a binary line length
  5433.                      is not specified, the BinaryLength  variable in
  5434.                      Config.aml is assumed.
  5435.  
  5436.                  c - cascades the window with other windows when loading.
  5437.  
  5438.                  e - loads the file into the current edit window. The
  5439.                      previous buffer in the window is not destroyed.
  5440.  
  5441.                  f - opens the window in 'full-screen' mode (maximized,
  5442.                      with all the borders visible).
  5443.  
  5444.                  i - inserts the file at the cursor in the current edit
  5445.                      window. If a directory is specified, then the user
  5446.                      is prompted to select a file.
  5447.  
  5448.                  l - specifies the line in the file where the cursor
  5449.                      should be placed after loading. The line number is
  5450.                      specified after the option 'l'. For example:
  5451.  
  5452.                        open "file.ext" "l541"
  5453.  
  5454.                      In the example above, a file is opened and the
  5455.                      cursor is placed on line 541.
  5456.  
  5457.                  h - tiles the window horizontally with other windows on
  5458.                      the screen when loading.
  5459.  
  5460.                  n - minimizes the window when loading.
  5461.  
  5462.                  p - ignores history (the last window and cursor
  5463.                      position) when loading the file or directory. This
  5464.                      temporarily overrides the SavePosition variable in
  5465.                      Config.aml.
  5466.  
  5467.                  r - replaces the file in the current window with the
  5468.                      new file. The previous buffer in the window is
  5469.                      destroyed.
  5470.  
  5471.                  v - tiles the window vertically with other windows
  5472.                      on the screen when loading.
  5473.  
  5474.                  z - maximizes the window when loading.
  5475.  
  5476.   returns:     the bufferid of the file or directory if successful,
  5477.                otherwise null.
  5478.  
  5479.   see also:    close, openbuf, opennew, reopen, save, setname
  5480.  
  5481.   example:     open "c:\\file.txt"
  5482.                  // opens the file c:\file.txt
  5483.                open "c:\\file.txt" "pz"
  5484.                  // opens the file c:\file.txt in a maximized window,
  5485.                  //   ignoring history
  5486.                open "d:\\*.txt" 'f'
  5487.                  // opens a full-screen file manager window displaying
  5488.                  //   all files with the extension ".txt" in the root
  5489.                  //   directory of the D drive.
  5490.                open "c:\\file.txt" "el23"
  5491.                  // opens the file c:\file.txt and displays it in the
  5492.                  //   current edit window. The cursor is placed on
  5493.                  //   line 23.
  5494.  
  5495.  
  5496.   openbuf      buffer opt=[ceflhnprvz]                          [Lib][a]
  5497.   ──────────────────────────────────────────────────────────────────────
  5498.   remarks:     Displays an existing buffer in a new edit window. Any
  5499.                open options except 'b' and 'i' may be specified. See the
  5500.                'open' function for a description of open options.
  5501.  
  5502.                This function allows buffers to be created and
  5503.                manipulated within the editor before being displayed in a
  5504.                window.
  5505.  
  5506.                The buffer should previously have been assigned a buffer
  5507.                name (a fully qualified file name). If the buffer was
  5508.                created with the 'loadbuf' function, the buffer name will
  5509.                have automatically been set to the file name where the
  5510.                buffer was loaded, otherwise the 'setbufname' function
  5511.                should be used to assign a buffer name.
  5512.  
  5513.   returns:     nothing
  5514.   see also:    close, createbbuf, createbuf, loadbuf, open, opennew,
  5515.                reopen, save, setname
  5516.  
  5517.   example:     openbuf (loadbuf "c:\\file.txt") 'z'
  5518.                  // load c:\file.txt and display it in a maximized
  5519.                  //   window
  5520.  
  5521.                buffer = createbuf            // create a new buffer
  5522.                if buffer then 
  5523.                  setbufname "c:\\file.txt"   // set the buffer name
  5524.                  openbuf buffer              // display the buffer
  5525.                end 
  5526.  
  5527.  
  5528.   opendesk     filename                                         [Lib][a]
  5529.   ──────────────────────────────────────────────────────────────────────
  5530.   remarks:     Loads a previously saved desktop from the specified
  5531.                filename and makes it the current desktop. The desktop
  5532.                does not become visible until the 'restoredesk' function
  5533.                is called.
  5534.   returns:     Non-zero if successful, otherwise zero
  5535.   see also:    begdesk, currdesk, enddesk, restoredesk, savedesk
  5536.  
  5537.  
  5538.   openfile     filename opt=[rwc]
  5539.   ──────────────────────────────────────────────────────────────────────
  5540.   remarks:     Opens the specified file for reading and/or writing. The
  5541.                following options can be specified:
  5542.  
  5543.                  c - create a new file or truncate the file if it
  5544.                      already exists
  5545.                  r - open the file for reading
  5546.                  w - open the file for writing
  5547.  
  5548.                If no options are specified, 'r' is assumed.
  5549.  
  5550.   returns:     A file handle if successful, otherwise -1.
  5551.   see also:    closefile, filepos, readfile, writefile
  5552.  
  5553.  
  5554.   openhistory  filename                                         [Lib][a]
  5555.   ──────────────────────────────────────────────────────────────────────
  5556.   remarks:     Opens the specified history file and replaces all
  5557.                existing history buffers with the history in the file.
  5558.                The current desktop is also replaced with the desktop
  5559.                saved in the history file.
  5560.   returns:     Non-zero if successful, otherwise null.
  5561.   see also:    savehistory
  5562.  
  5563.  
  5564.   openfold     opt=[s] row buffer
  5565.   ──────────────────────────────────────────────────────────────────────
  5566.   remarks:     Opens a closed fold. If 'buffer' is null or not
  5567.                specified, then the current buffer is assumed. If 'row'
  5568.                is not specified, then the line at the cursor is assumed.
  5569.                If option 's' is specified, all closed subfolds within
  5570.                the fold are also opened.
  5571.  
  5572.   returns:     the number of folds opened
  5573.   see also:    closefold, createfold, destroyfold, foldblock, getfold
  5574.  
  5575.   example:     openfold
  5576.                  // opens the closed fold at the current line in the
  5577.                  //   current buffer, leaving any subfolds closed
  5578.  
  5579.  
  5580.   openkey      filename                                         [Lib][a]
  5581.   ──────────────────────────────────────────────────────────────────────
  5582.   remarks:     Opens a key macro file saved with the 'savekey' function.
  5583.                If there is a name conflict with any currently defined
  5584.                key macros, the key macros in the opened file will
  5585.                replace the current key macros.
  5586.   returns:     TRUE if successful, otherwise null.
  5587.   see also:    savekey
  5588.  
  5589.  
  5590.   opennew      filename opt=[ceflhnprvz]                        [Ext][a]
  5591.   ──────────────────────────────────────────────────────────────────────
  5592.   remarks:     Creates a new buffer and displays it in an edit window.
  5593.                If 'filename' is not specified, the name "New.txt" is
  5594.                assumed. See the 'open' function for a description of
  5595.                valid open options.
  5596.  
  5597.   returns:     nothing
  5598.   see also:    close, open, openbuf, reopen, save, setname
  5599.  
  5600.   example:     opennew "New.c"
  5601.  
  5602.  
  5603.   openmouse    opt=[dr]
  5604.   ──────────────────────────────────────────────────────────────────────
  5605.   remarks      Initializes the mouse. If successful, the mouse pointer
  5606.                is displayed at the center of the screen and the event
  5607.                queue will process mouse events. For this function to
  5608.                return successfully, a mouse driver such as Mouse.com or
  5609.                Mouse.sys must be installed before the editor is started.
  5610.  
  5611.                Any combination of the following options can be
  5612.                specified:
  5613.  
  5614.                  d - hides the mouse pointer when a key is pressed. The
  5615.                      mouse pointer is re-displayed when the mouse is
  5616.                      used again.
  5617.                  r - reverses the mouse buttons
  5618.  
  5619.   returns:     TRUE is successful, otherwise null
  5620.   see also:    closemouse
  5621.  
  5622.  
  5623.   ovltext      string col row buffer
  5624.   ──────────────────────────────────────────────────────────────────────
  5625.   remarks:     This function overlays a string onto a buffer at the
  5626.                specified row and column. If 'buffer' is null or not
  5627.                specified, then the current buffer is assumed. If 'col'
  5628.                and 'row' are not specified, then the current cursor
  5629.                position is assumed.
  5630.  
  5631.   returns:     TRUE if successful, otherwise null.
  5632.  
  5633.   see also:    delchar, instext
  5634.  
  5635.   example:     ovltext "some text"
  5636.                  // overlays "some text" at the cursor in the current
  5637.                  //   buffer
  5638.                ovltext "some text" 2 20
  5639.                  // overlays "some text" at column 2, line 20 in the
  5640.                  //   current buffer
  5641.                ovltext "some text" 1 1 "abc"
  5642.                  // overlays "some text" at column 1, line 1 in the
  5643.                  //   buffer "abc"
  5644.  
  5645.  
  5646.   pagedown     (+/-)lines window
  5647.   ──────────────────────────────────────────────────────────────────────
  5648.   remarks:     Scrolls the text in a window down one page, plus or minus
  5649.                the specified number of lines. The default page size is
  5650.                the number of visible rows on the screen minus one row.
  5651.                The cursor is moved by the same amount that the text
  5652.                scrolls.
  5653.  
  5654.                If 'window' is not specified, the current window is
  5655.                assumed. The value of 'lines' is added to the page size.
  5656.  
  5657.   returns:     TRUE if successful, otherwise null.
  5658.   see also:    pageup
  5659.  
  5660.   example:     pagedown
  5661.                  // scrolls down one page
  5662.                pagedown 1
  5663.                  // scrolls down one page and one line
  5664.                pagedown -(getviewrows / 2)
  5665.                  // scrolls down one half page
  5666.  
  5667.  
  5668.   pageup       (+/-)lines window
  5669.   ──────────────────────────────────────────────────────────────────────
  5670.   remarks:     Scrolls the text in a window up one page, plus or minus
  5671.                the specified number of lines. The default page size is
  5672.                the number of visible rows on the screen minus one row.
  5673.                The cursor is moved by the same amount that the text
  5674.                scrolls.
  5675.  
  5676.                If 'window' is not specified, the current window is
  5677.                assumed. The value of 'lines' is added to the page size.
  5678.  
  5679.   returns:     TRUE if successful, otherwise null.
  5680.   see also:    pagedown
  5681.  
  5682.   example:     pageup
  5683.                  // scrolls up one page
  5684.                pageup 1
  5685.                  // scrolls up one page and one line
  5686.                pageup -(getviewrows / 2)
  5687.                  // scrolls up one half page
  5688.  
  5689.  
  5690.   pan          (+/-)cols (+/-)rows
  5691.   ──────────────────────────────────────────────────────────────────────
  5692.   remarks:     Pans to a new relative location on the virtual screen by
  5693.                changing the mapping of the physical video device (the
  5694.                screen) to the virtual video device. 'cols' and 'rows'
  5695.                specify the relative distance in screen columns and rows
  5696.                from the current position.
  5697.  
  5698.   returns:     TRUE if successful, otherwise null
  5699.   see also:    panto
  5700.  
  5701.   example:     pan 2 -2    // pans right 2 columns and up 2 rows
  5702.  
  5703.  
  5704.   pankey                                                      [Lib][win]
  5705.   ──────────────────────────────────────────────────────────────────────
  5706.   remarks:     Pans through the virtual screen by using the cursor keys.
  5707.   returns:     nothing
  5708.   see also:    sizekey
  5709.  
  5710.  
  5711.   panto        virtualX virtualY
  5712.   ──────────────────────────────────────────────────────────────────────
  5713.   remarks:     Pans to a new absolute location on the virtual screen by
  5714.                changing the mapping of the physical video device (the
  5715.                screen) to the virtual video device. 'virtualX' and
  5716.                'virtualY' specify an absolute X,Y coordinate on the
  5717.                virtual screen where the upper left corner of the
  5718.                physical screen is to be located.
  5719.  
  5720.                The virtual video device is 64000 x 64000 characters.
  5721.                When the editor is initially invoked, physical screen is
  5722.                placed at 16000,16000 in the virtual screen.
  5723.  
  5724.   returns:     TRUE if successful, otherwise null
  5725.   see also:    panto
  5726.  
  5727.   example:     panto 8000 10000     // pans to column 8000, row 10000
  5728.  
  5729.  
  5730.   parse        searchstr string opt=[irwx] ref1 ref2 ...
  5731.   ──────────────────────────────────────────────────────────────────────
  5732.   remarks:     Parses substrings (or substring positions) within a
  5733.                string into local or global variables. This function can
  5734.                be handy for parsing almost any string with only one
  5735.                function call. See the 'pos' function for a description
  5736.                of valid search options.
  5737.  
  5738.                If search option 'x' (regular expressions) is specified,
  5739.                and 'tagged' patterns (enclosed within the {} grouping
  5740.                operators) are specified in the search string, any tagged
  5741.                patterns found are returned in the variables (ref1, ref2,
  5742.                etc.) passed by reference to this function.
  5743.  
  5744.                If search option 'x' is not specified (or tagged patterns
  5745.                are not specified) the positions of successive
  5746.                occurrences of 'searchstr' within 'string' are returned
  5747.                in the variables (ref1, ref2, etc.) passed by reference
  5748.                to this function.
  5749.  
  5750.   returns:     The position in the string where the first occurrence of
  5751.                'searchstr' is found. Substrings (or substring positions)
  5752.                are returned in variables passed by reference to this
  5753.                function.
  5754.  
  5755.   see also:    pos, poschar, posnot, sub
  5756.  
  5757.   example:     parse "{[0-9]#}.*{[0-9]#}.*{[0-9]#}" str 'x'
  5758.                       ref a ref b ref c
  5759.                  // parses 'str', and places the first three numbers
  5760.                  // found in variables a, b, and c.
  5761.                str = "bacdaae"
  5762.                parse "a" str '' ref x ref y ref z
  5763.                  // after this function call: x=2, y=5, z=6
  5764.  
  5765.  
  5766.   pass         arg1 arg2 ...
  5767.   ──────────────────────────────────────────────────────────────────────
  5768.   remarks:     Calls the current executing function in the parent
  5769.                object(s) of the current (executing) object, passing the
  5770.                arguments 'arg1', 'arg2', etc.
  5771.  
  5772.                This function can be used to intercept an event or
  5773.                function call for pre-processing or post-processing.
  5774.  
  5775.   returns:     The return value from the function call.
  5776.   see also:    call, eval, passprev, send, sendobject
  5777.  
  5778.   example:     function <lbutton>
  5779.                  :
  5780.                  // pre-processing
  5781.                  :
  5782.                  pass  // pass control to <lbutton> in a parent object
  5783.                  :
  5784.                  // post-processing
  5785.                  .
  5786.                end 
  5787.  
  5788.  
  5789.   passprev     arg1 arg2 ...
  5790.   ──────────────────────────────────────────────────────────────────────
  5791.   remarks:     Calls the current executing function in the 'preempted'
  5792.                object (if any) of the current object, passing the
  5793.                arguments 'arg1', 'arg2', etc. In all other respects,
  5794.                this function is identical to the 'pass' function.
  5795.  
  5796.                A 'preempted' object is an object which has been
  5797.                temporarily overridden by an object with the same name.
  5798.                The overriding object is defined from within an external
  5799.                macro executed with the 'runmacro' function.
  5800.  
  5801.                Individual functions are temporarily replaced or
  5802.                'preempted' from within the macro by simply redefining
  5803.                the functions in an object with the same name as the
  5804.                object to be overridden. This allows detailed, temporary
  5805.                modifications to be made to an existing object, without
  5806.                adding new objects to the object hierarchy. The
  5807.                modifications will disappear when the macro is finished
  5808.                executing.
  5809.  
  5810.                This function allows you to access an older overridden or
  5811.                'preempted' function from within the newer overriding or
  5812.                'preempting' function.
  5813.  
  5814.   returns:     The return value from the function call.
  5815.   see also:    call, eval, pass, send, sendobject
  5816.  
  5817.  
  5818.   peek         address length
  5819.   ──────────────────────────────────────────────────────────────────────
  5820.   remarks:     Gets the portion of Dos memory specified by 'address' and
  5821.                'length'. The address must be a segment:offset address.
  5822.                The maximum length is 16000.
  5823.  
  5824.   returns:     a copy of the specified Dos memory area.
  5825.   see also:    poke
  5826.  
  5827.   example:     peek 0 100
  5828.                  // returns the first 100 bytes of memory
  5829.                peek 0xb8000000 40
  5830.                  // returns 40 bytes starting at B800:0000
  5831.  
  5832.  
  5833.   pickfile     filespec title title2 bufname sortopt fmgropt    [Lib][a]
  5834.   ──────────────────────────────────────────────────────────────────────
  5835.   remarks:     Displays a file selection menu based on 'filespec'. The
  5836.                following additional parameters can be specified:
  5837.  
  5838.                title   - an optional main menu title
  5839.  
  5840.                title2  - an optional right-justified menu title
  5841.  
  5842.                bufname - an optional buffer name to be used for the
  5843.                          menu. If a buffer name is specified, the window
  5844.                          size and position will be saved and associated
  5845.                          with the buffer name.
  5846.  
  5847.                sortopt - one of the following sort options can be
  5848.                          specified:
  5849.  
  5850.                            d - file date/time (descending)
  5851.                            e - file extension
  5852.                            n - file name
  5853.                            o - Dos default order
  5854.                            s - file size (descending)
  5855.  
  5856.                          If no options are specified, the FmgrSort
  5857.                          variable in Config.aml is assumed.
  5858.  
  5859.                fmgropt - one of the following options can be specified:
  5860.  
  5861.                            v - variable length format
  5862.                            d - show subdirectories
  5863.                            f - show files
  5864.                            h - show hidden & system files
  5865.                            k - show file sizes in 1k increments
  5866.                            1 - show directories first when sorting
  5867.                                by name
  5868.  
  5869.                          If no options are specified, the FmgrOpt
  5870.                          variable in Config.aml is assumed.
  5871.  
  5872.   returns:     The selected file or directory, or null if nothing was
  5873.                selected.
  5874.  
  5875.   see also:    popup
  5876.  
  5877.   example:     pickfile "c:\\*.*" "Select a file"
  5878.                  // displays a file selection menu for the C drive
  5879.                pickfile "c:\\*.*" "Select a file" 's' 'dk'
  5880.                  // displays a file selection menu for the C drive,
  5881.                  //   sorted by file size. The menu will show
  5882.                  //   subdirectories, and file sizes in 1k increments
  5883.  
  5884.  
  5885.   playkey      keyname                                        [Lib][mon]
  5886.   ──────────────────────────────────────────────────────────────────────
  5887.   remarks:     Plays the key macro assigned to the specified key. If
  5888.                'keyname' is not specified, the current scrap key macro
  5889.                is assumed.
  5890.  
  5891.   returns:     TRUE if successful, otherwise null.
  5892.   see also:    assignkey, openkey, playing?, savekey, setting
  5893.  
  5894.   example:     playkey
  5895.                  // plays the current scrap key macro
  5896.                playkey "<ctrl b>"
  5897.                  // plays the key macro assigned to <ctrl b>
  5898.  
  5899.  
  5900.   playing?     keyname
  5901.   ──────────────────────────────────────────────────────────────────────
  5902.   remarks:     Tests if a key macro is currently playing. If 'keyname'
  5903.                is not specified, the current scrap key macro is assumed.
  5904.   returns:     nothing
  5905.   see also:    assignkey, openkey, playkey, savekey, setting
  5906.  
  5907.  
  5908.   poke         address string
  5909.   ──────────────────────────────────────────────────────────────────────
  5910.   remarks:     Copies a string to the specified Dos memory address.
  5911.                'address' must segment:offset address. Obviously, this
  5912.                function should be used with care.
  5913.  
  5914.   returns:     nothing
  5915.   see also:    peek
  5916.  
  5917.   example:     poke 0xb8000000 "T E S T "
  5918.                  // copy "T E S T " to B800:0000
  5919.  
  5920.  
  5921.   popcursor    opt=[ad] buffer
  5922.   ──────────────────────────────────────────────────────────────────────
  5923.   remarks:     If no options are specified, this function pops a
  5924.                position from the internal cursor stack, and moves the
  5925.                cursor to the popped position. The popped position must
  5926.                have been placed on the stack with the 'pushcursor'
  5927.                function. If 'buffer' is null or not specified, the
  5928.                current buffer is assumed.
  5929.  
  5930.                Any combination of the following options may be specified:
  5931.  
  5932.                  a - pops all positions from the cursor stack
  5933.                  d - don't move the cursor to the popped position
  5934.  
  5935.   returns:     nothing
  5936.   see also:    pushcursor
  5937.  
  5938.  
  5939.   pophistory   historybuffer title                              [Lib][a]
  5940.   ──────────────────────────────────────────────────────────────────────
  5941.   remarks:     Displays a history popup menu for the specified history
  5942.                buffer, with an optional menu title.
  5943.  
  5944.   returns:     The string selected from the popup menu. Returns null if
  5945.                nothing was selected or the history buffer does not
  5946.                exist.
  5947.  
  5948.   see also:    askhistory
  5949.  
  5950.   example:     pophistory "_load"
  5951.                  // displays a popup menu for the "_load" history buffer
  5952.                pophistory "_load" "Select a File"
  5953.                  // displays a popup menu for the "_load" history buffer
  5954.                  //   with the title 'Select a File'
  5955.  
  5956.  
  5957.   popup        buffer title width height object                 [Lib][a]
  5958.   ──────────────────────────────────────────────────────────────────────
  5959.   remarks:     Displays a buffer in a popup menu. If 'buffer' is not
  5960.                specified, the current buffer is assumed. 'buffer' can
  5961.                also be the name of a menu defined with the 'menu'
  5962.                statement.
  5963.  
  5964.                The following parameters can also be specified:
  5965.  
  5966.                title  - the popup window title.
  5967.  
  5968.                width  - the menu width. If none is specified, and the
  5969.                         menu was defined with the 'menu' function, the
  5970.                         length of the longest line determines the menu
  5971.                         width.
  5972.  
  5973.                height - the menu height. If none is specified, the
  5974.                         lesser of the screen rows or the menu rows is
  5975.                         assumed.
  5976.  
  5977.                object - the event handling object to be associated with
  5978.                         the popup menu (note that this object must be
  5979.                         derived from the pre-defined 'popup' object).
  5980.  
  5981.                         If specified, the window event handling object
  5982.                         for the popup window will be set to this object,
  5983.                         allowing for customized keyboard/event behavior.
  5984.  
  5985.                         The events 'onopen' and 'onclose' will be sent
  5986.                         to the object when the popup menu is opened and
  5987.                         closed.
  5988.  
  5989.                If the buffer has been named with 'setbufname', it will
  5990.                remember the previous window and cursor position each
  5991.                time it is displayed.
  5992.  
  5993.   returns:     For popup menus defined with the 'menu' statement, the
  5994.                macro expression associated with the menu item is
  5995.                evaluated and the result is returned.
  5996.  
  5997.                If no macro expression is associated with menu item or
  5998.                the menu was not defined with the 'menu' statement, the
  5999.                menu item description line is returned.
  6000.  
  6001.                If no item was selected from the menu, the null string is
  6002.                returned.
  6003.  
  6004.   see also:    getmenu, menu, pickfile
  6005.  
  6006.   example:     popup "files" "Select a File"
  6007.                  // displays the menu buffer 'files' with the title
  6008.                  //   'Select a File'
  6009.                popup "files" '' 25 10
  6010.                  // displays the buffer 'files' with no title,
  6011.                  //   a width of 25 columns, and a height of 10 rows
  6012.  
  6013.  
  6014.   pos          searchstr string opt=[irwx]
  6015.   ──────────────────────────────────────────────────────────────────────
  6016.   remarks:     Searches for the specified search string within 'string'.
  6017.                Any of the following search options may be specified:
  6018.  
  6019.                  i - ignore case
  6020.                  r - search in reverse from the end of the string
  6021.                  w - whole words only
  6022.                  x - use regular expressions (see Regexp.dox)
  6023.  
  6024.   returns:     The position in 'string' where the first occurrence of
  6025.                the search string is found, or zero if nothing is found.
  6026.  
  6027.   see also:    parse, poschar, posnot, sub
  6028.  
  6029.   example:     pos 'p' "apples"               // returns 2
  6030.                pos 'p' "apples" 'r'           // returns 3
  6031.                pos 'ES' "apples" 'i'          // returns 5
  6032.  
  6033.  
  6034.   poschar      charclass string opt=[r]
  6035.   ──────────────────────────────────────────────────────────────────────
  6036.   remarks:     Searches for the first character in 'string' which is
  6037.                found in 'charclass'. Character ranges such as 'a-z' or
  6038.                'A-Z' can be specified. If option 'r' is specified, the
  6039.                search proceeds from the end of string to the beginning
  6040.                of the string.
  6041.  
  6042.   returns:     The position in the string where the first character was
  6043.                found, or zero if not found.
  6044.  
  6045.   see also:    parse, pos, posnot, sub
  6046.  
  6047.   example:     poschar "abc" "123b5a78"       // returns 4
  6048.                poschar "abc" "123b5a78" 'r'   // returns 6
  6049.                poschar "apples" "oranges"     // returns 3
  6050.                poschar "c-f" "oranges"        // returns 6
  6051.  
  6052.  
  6053.   posnot       charclass string opt=[r]
  6054.   ──────────────────────────────────────────────────────────────────────
  6055.   remarks:     Searches for the first character in 'string' which is not
  6056.                found in 'charclass'. Character ranges such as 'a-z' or
  6057.                'A-Z' can be specified. If option 'r' is specified, the
  6058.                search proceeds from the end of string to the beginning
  6059.                of the string.
  6060.  
  6061.   returns:     The position in the string where the first character not
  6062.                in 'charclass' was found, or zero if not found.
  6063.  
  6064.   see also:    parse, pos, poschar, sub
  6065.  
  6066.   example:     posnot "abc" "abc123ab"        // returns 4
  6067.                posnot "abc" "abc123ab" 'r'    // returns 6
  6068.                posnot "oranges" "apples"      // returns 2
  6069.                posnot "a-r" "oranges"         // returns 7
  6070.  
  6071.  
  6072.   prevfile                                                   [Lib][edit]
  6073.   ──────────────────────────────────────────────────────────────────────
  6074.   remarks:     Makes the previous buffer in the buffer list the current
  6075.                buffer, and displays it in the current edit window. The
  6076.                buffer previously displayed in the edit window will not
  6077.                be destroyed.
  6078.   returns:     nothing
  6079.   see also:    filelist, nextfile
  6080.  
  6081.  
  6082.   prevhist                                                 [Lib][prompt]
  6083.   ──────────────────────────────────────────────────────────────────────
  6084.   remarks:     Displays the previous history string in a prompt. This
  6085.                function is only for use within prompts.
  6086.   returns:     nothing
  6087.   see also:    gethistname, nexthist
  6088.  
  6089.  
  6090.   prevwindow                                                  [Lib][win]
  6091.   ──────────────────────────────────────────────────────────────────────
  6092.   remarks:     Switches the focus to the previous window on the screen.
  6093.   returns:     nothing
  6094.   see also:    nextwindow
  6095.  
  6096.  
  6097.   printblock   device header mark init
  6098.   ──────────────────────────────────────────────────────────────────────
  6099.   remarks:     Prints marked text. The text is printed using the printer
  6100.                settings specified with the 'printformat' function. If
  6101.                'mark' is not specified, the default markid is assumed.
  6102.  
  6103.                All other arguments are identical to the 'printbuf'
  6104.                function (see 'printbuf').
  6105.  
  6106.   returns:     TRUE if successful, otherwise null.
  6107.   see also:    printbuf, printformat
  6108.  
  6109.  
  6110.   printbuf     device header buffer init
  6111.   ──────────────────────────────────────────────────────────────────────
  6112.   remarks:     Prints a buffer. The text is printed using the printer
  6113.                settings specified with the 'printformat' function. If
  6114.                'buffer' is null or not specified, then the current
  6115.                buffer is assumed.
  6116.  
  6117.                'device' is the printer device to use. Filenames or
  6118.                device names such as prn, lpt1, lpt2, etc.  can be
  6119.                specified. If the device is null or not specified, then
  6120.                prn is assumed.
  6121.  
  6122.                'header' specifies a string to place on the header and/or
  6123.                footer of each page. Print headers and/or footers must be
  6124.                enabled with the 'printformat' function (see the
  6125.                'printformat' function).
  6126.  
  6127.                'init' specifies a device-specific string to send to the
  6128.                the printer before printing. Typically, this string will
  6129.                contain control codes for setting the current font,
  6130.                portrait/landscape orientation, etc.
  6131.  
  6132.   returns:     TRUE if successful, otherwise null.
  6133.   see also:    printblock, printformat
  6134.  
  6135.   example:     printbuf
  6136.                  // prints the current buffer to the device 'prn'
  6137.                printbuf "c:\\print.txt"
  6138.                  // prints the current buffer to the file 'c:\\print.txt'
  6139.                printbuf "lpt1" "Inventory" "abc"
  6140.                  // prints the buffer 'abc' to the device 'prn' using
  6141.                  //   the header/footer 'Inventory'
  6142.  
  6143.  
  6144.   printformat  printer opt=[efhlps] pagesize leftmarg topmarg rightmarg
  6145.                bottommarg linespace copies
  6146.   ──────────────────────────────────────────────────────────────────────
  6147.   remarks:     Changes the current printer settings. The following
  6148.                printer settings can be specified:
  6149.  
  6150.                printer    - reserved for future use
  6151.  
  6152.                pagesize   - specifies the lines per page of printed
  6153.                             output. This includes the top margin and the
  6154.                             bottom margin. After the specified lines per
  6155.                             page have been printed, a formfeed character
  6156.                             (Ascii 12) will be sent to the printer and a
  6157.                             new page will be started.
  6158.  
  6159.                             If 'pagesize' is zero, printing will be
  6160.                             continuous (no formfeed characters will be
  6161.                             sent to the printer) and 'topmarg',
  6162.                             'bottommarg', and the option 'p' will be
  6163.                             ignored.
  6164.  
  6165.                linespace  - specifies the number of lines to advance
  6166.                             after printing each line of output. A value
  6167.                             of 1 generates single-spaced output, 2
  6168.                             generates double-spaced output, and so on.
  6169.  
  6170.                copies     - specifies the number of copies to print.
  6171.  
  6172.                topmarg    - specifies the number of blank lines to
  6173.                             precede printed output at the top of each
  6174.                             page. This value is included in 'pagesize'.
  6175.                             'topmarg' is ignored if 'pagesize' is zero.
  6176.  
  6177.                bottommarg - specifies the number of blank lines to
  6178.                             follow  printed output at the bottom of each
  6179.                             page. This value is included in 'pagesize'.
  6180.                             'bottommarg' is ignored if 'pagesize' is
  6181.                             zero.
  6182.  
  6183.                leftmarg   - specifies the number of blank columns to
  6184.                             precede the printed output on each line.
  6185.  
  6186.                rightmarg  - specifies the column position at which to
  6187.                             truncate each printed line. This column
  6188.                             position is relative to column zero of the
  6189.                             printed output, not the file being printed.
  6190.                             If zero is specified, lines are not
  6191.                             truncated.
  6192.  
  6193.                Any of the following print options can also be specified:
  6194.  
  6195.                h - prints a header at the top of each page. The header
  6196.                    is specified in the 'printbuf' or 'printblock'
  6197.                    functions when printing. This option is ignored if
  6198.                    'pagesize' is zero.
  6199.  
  6200.                f - prints a footer at the bottom of each page. The
  6201.                    footer is specified in the 'printbuf' or 'printblock'
  6202.                    functions when printing. This option is ignored if
  6203.                    'pagesize' is zero.
  6204.  
  6205.                s - adds a separator line after the header line and
  6206.                    before the footer line.
  6207.  
  6208.                p - prints a right justified page number on the header
  6209.                    and footer lines. If neither a header or footer was
  6210.                    specified, a blank header line is assumed. This
  6211.                    option is ignored if 'pagesize' is zero.
  6212.  
  6213.                l - prints a line number at the beginning of each line.
  6214.  
  6215.                e - sends a formfeed character to the printer when
  6216.                    printing is completed.
  6217.  
  6218.   returns:     nothing
  6219.   see also:    printblock, printbuf
  6220.  
  6221.  
  6222.   process 
  6223.   ──────────────────────────────────────────────────────────────────────
  6224.   remarks:     Creates an editor subprocess by invoking the editor
  6225.                recursively. This function does not return until the
  6226.                'endprocess' function is called. The effect of this
  6227.                function is equivalent to the following loop:
  6228.  
  6229.                  while dispatch do 
  6230.                    :
  6231.                  end 
  6232.  
  6233.   returns:     nothing
  6234.   see also:    dispatch, endprocess
  6235.  
  6236.  
  6237.   purgequeue 
  6238.   ──────────────────────────────────────────────────────────────────────
  6239.   remarks:     Removes all events from the event queue.
  6240.   returns:     nothing
  6241.   see also:    queue, queueobject, sizequeue
  6242.  
  6243.  
  6244.   pushcursor   buffer
  6245.   ──────────────────────────────────────────────────────────────────────
  6246.   remarks:     Saves the cursor position on an internal cursor stack
  6247.                which is unique for each buffer. If 'buffer' is null or
  6248.                not specified, the current buffer is assumed.
  6249.   returns:     nothing
  6250.   see also:    popcursor
  6251.  
  6252.  
  6253.   qualify      filename filespec
  6254.   ──────────────────────────────────────────────────────────────────────
  6255.   remarks:     Converts an unqualified or partially qualified filename
  6256.                into a fully-qualified filename, including drive and
  6257.                directory. 'filespec' is used as the 'template' for the
  6258.                qualification. If 'filespec' is not specified, the
  6259.                current drive and path are assumed.
  6260.  
  6261.   returns:     a fully qualified filename or directory specification.
  6262.   see also:    bootpath, getbootpath
  6263.  
  6264.   example:     qualify "file.txt"
  6265.                  // returns c:\file.txt if c:\ is the current path
  6266.                qualify "file.txt" "e:\\doc"
  6267.                  // returns e:\doc\file.txt
  6268.  
  6269.  
  6270.   queue        function arg1 arg2 ...
  6271.   ──────────────────────────────────────────────────────────────────────
  6272.   remarks:     Queues a public function call for later execution. The
  6273.                specified function and arguments 'arg1', 'arg2', etc. are
  6274.                placed on on the event queue. When the editor is idle, it
  6275.                will read the event queue and attempt to call the
  6276.                function in the current event object.
  6277.  
  6278.   returns:     TRUE if successful, otherwise null.
  6279.   see also:    purgequeue, queueobject, sizequeue
  6280.  
  6281.   example:     queue "abc" 1 2 4
  6282.                  // queues the function call 'abc 1 2 4' for later
  6283.                  //   execution in the current event object
  6284.  
  6285.  
  6286.   queuekey     keycode1 keycode2 ...
  6287.   ──────────────────────────────────────────────────────────────────────
  6288.   remarks:     Pushes the specified keycodes onto the editor event queue
  6289.                for later execution.
  6290.  
  6291.   returns:     nothing
  6292.   see also:    geteventcode, getkey, sendkey
  6293.  
  6294.   example:     keycode = getkey     // gets a keycode...
  6295.                queuekey keycode     // and queues it for execution
  6296.  
  6297.  
  6298.   queueobject  object function arg1 arg2 ...
  6299.   ──────────────────────────────────────────────────────────────────────
  6300.   remarks:     Queues a public function call for later execution in a
  6301.                specific object. The specified object, function, and
  6302.                arguments 'arg1', 'arg2', etc. are placed on the event
  6303.                queue. When the editor is idle, it will read the event
  6304.                queue and attempt to call the function in the specified
  6305.                object.
  6306.  
  6307.   returns:     TRUE if successful, otherwise null.
  6308.   see also:    purgequeue, queue, sizequeue
  6309.  
  6310.   example:     queueobject "edit" "abc" 1 2 4
  6311.                  // queues the function call 'abc 1 2 4' for later
  6312.                  //   execution in the object 'edit'
  6313.  
  6314.  
  6315.   rand         seed
  6316.   ──────────────────────────────────────────────────────────────────────
  6317.   remarks:     Generates a random number between 0 and 2147483647. The
  6318.                random number generator can be initialized by specifying
  6319.                a random number 'seed'.
  6320.  
  6321.                Note: the editor library initializes the random number
  6322.                generator with a value based on the current time when the
  6323.                editor is started.
  6324.  
  6325.   returns:     a random number.
  6326.  
  6327.   example:     rand 12345    // initializes the random number generator
  6328.                rand mod 100  // returns a random number between 0 and 99
  6329.  
  6330.  
  6331.   readfile     length handle
  6332.   ──────────────────────────────────────────────────────────────────────
  6333.   remarks:     Reads 'length' characters from the current position in
  6334.                the open file specified by 'handle'. If 'length' is not
  6335.                specified, a length of 16000 is assumed. If a file handle
  6336.                is not specified, then the file handle returned from the
  6337.                most recent openfile call is assumed.
  6338.  
  6339.                The 'length' may not exceed 16000. The current position
  6340.                in the file is advanced by the amount of characters read.
  6341.  
  6342.   returns:     The data read from the file if successful, otherwise
  6343.                null. The number of characters actually read from the
  6344.                file can be determined by using the 'length' operator on
  6345.                the returned string.
  6346.  
  6347.   see also:    closefile, filepos, openfile, writefile
  6348.  
  6349.   example:     // reads the first 100 bytes of file.txt into 'str'
  6350.                if openfile "c:\\file.txt" <> -1 then 
  6351.                  str = readfile 100
  6352.                  closefile
  6353.                end 
  6354.  
  6355.  
  6356.   redo         buffer
  6357.   ──────────────────────────────────────────────────────────────────────
  6358.   remarks:     Reverses the changes made by the last 'undo' function
  6359.                call for a specific buffer. If 'buffer' is null or not
  6360.                specified, then the current buffer is assumed.
  6361.   returns:     TRUE if successful, otherwise null.
  6362.   see also:    undo, undobegin, undocursor, undoend
  6363.  
  6364.  
  6365.   renamefile   filename newfilename
  6366.   ──────────────────────────────────────────────────────────────────────
  6367.   remarks:     Renames the the specified filename to 'newfilename'. A
  6368.                directory can also be renamed to another directory on the
  6369.                same drive.
  6370.   returns:     TRUE if successful, otherwise null.
  6371.   see also:    copyfile, deletefile
  6372.  
  6373.  
  6374.   reopen       filename                                 [Ext][edit_fmgr]
  6375.   ──────────────────────────────────────────────────────────────────────
  6376.   remarks:     Reloads the current window with the specified file or
  6377.                directory. If 'filename' is not specified, the buffer
  6378.                name of the current buffer is assumed. The previous file
  6379.                or directory is destroyed.
  6380.  
  6381.   returns:     nothing
  6382.   see also:    close, fupdate, open, openbuf, opennew, save, setname
  6383.  
  6384.   example:     reopen
  6385.                  // refreshes the current file from disk
  6386.                reopen "c:\\file.txt"
  6387.                  // loads c:\file.txt into the current window,
  6388.                  //   destroying the existing buffer in the window
  6389.  
  6390.  
  6391.   replace      searchstr replacestr opt=[abfgilnorswx*[~] mark buffer
  6392.   ──────────────────────────────────────────────────────────────────────
  6393.   remarks:     Searches for the specified search string within a buffer,
  6394.                mark, or line, and replaces it with 'replstr'. If
  6395.                'buffer' is not specified, the current buffer is assumed.
  6396.  
  6397.                See the 'find' function for a list of available search
  6398.                options.
  6399.  
  6400.                If option 'a' is specified, all occurrences of the
  6401.                'searchstr' found will be replaced with 'replacestr'. If
  6402.                option 'a' is not specified, then only the first
  6403.                occurrence of the search string is replaced.
  6404.  
  6405.                If the string is found and neither of the search options
  6406.                'a' or 'n' are specified, then the cursor is moved to the
  6407.                beginning of the found string, otherwise the cursor does
  6408.                not move.
  6409.  
  6410.   returns:     If option 'a' is specified, the number of replacements
  6411.                made is returned, otherwise the length of the replaced
  6412.                string is returned. If nothing is found, then null is
  6413.                returned.
  6414.  
  6415.   see also:    find, search
  6416.  
  6417.   example:     replace "apples" "oranges"
  6418.                  // replaces the next occurrence of 'apples' with
  6419.                  //   'oranges' in the current buffer, starting at one
  6420.                  //   character after the cursor position
  6421.                replace "apples" "oranges" "ag"
  6422.                  // replaces all occurrences of 'apples' with 'oranges'
  6423.                  //   in the current buffer and returns the number of
  6424.                  //   occurrences. The cursor is not moved.
  6425.  
  6426.  
  6427.   resident     [0/1]
  6428.   ──────────────────────────────────────────────────────────────────────
  6429.   remarks:     Forces the currently executing macro (invoked by the
  6430.                runmacro function) to remain resident or to be discarded
  6431.                after the macro is finished executing.
  6432.  
  6433.                If 1 is specified, the macro (the object created by
  6434.                runmacro) will remain resident. Any functions or object
  6435.                variables defined in the macro will also remain resident.
  6436.                The macro can be removed later by explicitly destroying
  6437.                the runmacro object with the 'destroyobject' function.
  6438.  
  6439.                If 0 specified, the macro will be discarded (the object
  6440.                created by runmacro will be destroyed).
  6441.  
  6442.   returns:     nothing
  6443.   see also:    destroyobject, loadobject, runmacro
  6444.  
  6445.  
  6446.   restore      window                                           [Lib][a]
  6447.   ──────────────────────────────────────────────────────────────────────
  6448.   remarks:     Restores the specified window. If 'window' is not
  6449.                specified, the current window is assumed.
  6450.   returns:     nothing
  6451.   see also:    max?, maximize, min?, minimize
  6452.  
  6453.  
  6454.   restoredesk  opt=[c]                                          [Lib][a]
  6455.   ──────────────────────────────────────────────────────────────────────
  6456.   remarks:     Displays the current desktop. The current desktop is set
  6457.                by the 'opendesk', 'currdesk', and 'openhistory'
  6458.                functions. The 'begdesk' and 'enddesk' functions also
  6459.                change the current desktop.
  6460.  
  6461.                If option 'c' is specified, the existing desktop is
  6462.                cleared before displaying the new desktop.
  6463.  
  6464.   returns:     nothing
  6465.  
  6466.   see also:    begdesk, currdesk, enddesk, opendesk, openhistory,
  6467.                savedesk
  6468.  
  6469.   example:     opendesk "c:\\desktop.dst"
  6470.                  // loads the previously saved desktop in d:\desktop.dst
  6471.                  //   and makes it the current desktop
  6472.                restoredesk
  6473.                  // makes the current desktop visible
  6474.  
  6475.  
  6476.   right        cols buffer
  6477.   ──────────────────────────────────────────────────────────────────────
  6478.   remarks:     Moves the cursor to the right. 'cols' specifies the
  6479.                number of columns to move. If 'cols' is not specified,
  6480.                then one is assumed. If 'buffer' is null or not
  6481.                specified, the current buffer is assumed.
  6482.  
  6483.   returns:     the new cursor column if successful, otherwise null.
  6484.   see also:    down, left, up
  6485.  
  6486.   example:     right      // moves the cursor right 1 column
  6487.                right 5    // moves the cursor right 5 columns
  6488.  
  6489.  
  6490.   rollcol      (+/-)cols window
  6491.   ──────────────────────────────────────────────────────────────────────
  6492.   remarks:     Scrolls the text in a window left or right, relative to
  6493.                the current position. If 'window' is not specified, the
  6494.                current window is assumed. The cursor is moved by the
  6495.                same amount that the text scrolls.
  6496.  
  6497.                'cols' specifies the number of columns to scroll.
  6498.                Positive numbers scroll right and negative numbers scroll
  6499.                left.
  6500.  
  6501.   returns:     TRUE if successful, otherwise null.
  6502.   see also:    rollrow
  6503.  
  6504.   example:     rollcol 4            // scrolls right 4 columns
  6505.                rollcol -1           // scrolls left 1 column
  6506.  
  6507.  
  6508.   rollrow      rows window
  6509.   ──────────────────────────────────────────────────────────────────────
  6510.   remarks:     Scrolls the text in window up or down, relative to the
  6511.                current position. If 'window' is not specified, the
  6512.                current window is assumed. The cursor is moved by the
  6513.                same amount that the text scrolls.
  6514.  
  6515.                'rows' specifies the number of lines to scroll. Positive
  6516.                numbers scroll down and negative numbers scroll up.
  6517.  
  6518.   returns:     TRUE if successful, otherwise null.
  6519.   see also:    rollcol
  6520.  
  6521.   example:     rollrow 4            // scrolls down 4 rows
  6522.                rollrow -1           // scrolls up 1 row
  6523.  
  6524.  
  6525.   row          row buffer
  6526.   ──────────────────────────────────────────────────────────────────────
  6527.   remarks:     Moves the cursor to the specified row, but does not
  6528.                change the column. If 'buffer' is null or not specified,
  6529.                the current buffer is assumed.
  6530.  
  6531.   returns:     the new cursor line number if successful, otherwise null.
  6532.   see also:    col, gotopos
  6533.  
  6534.   example:     row 1
  6535.                  // moves the cursor to line 1 in the current buffer
  6536.                row (getlines)
  6537.                  // moves the cursor to the last line in the current
  6538.                  //   buffer
  6539.  
  6540.  
  6541.   runmacro     filename object arg3 arg4 ...
  6542.   ──────────────────────────────────────────────────────────────────────
  6543.   remarks:     Runs the executable macro contained in the specified
  6544.                filename. The macro is loaded into a new object descended
  6545.                from the current event object, and executed. Arguments
  6546.                passed to the macro are the same arguments passed to the
  6547.                loadobject function.
  6548.  
  6549.                If 'object' is not specified, a unique object name is
  6550.                generated.
  6551.  
  6552.                Normally, when the macro is finished executing, the new
  6553.                object created by runmacro is destroyed and the macro is
  6554.                discarded. However, if the 'resident ON' statement is
  6555.                issued from within the macro, the macro will remain
  6556.                resident until the object is explicitly destroyed with
  6557.                the 'destroyobject' function.
  6558.  
  6559.   returns:     The return value from executing the macro.
  6560.  
  6561.   see also:    compilemacro, destroyobject, eval, loadobject, resident
  6562.  
  6563.   example:     runmacro "c:\\aurora\\macro\\mymacro.x"
  6564.  
  6565.  
  6566.   save         filename                                         [Ext][a]
  6567.   ──────────────────────────────────────────────────────────────────────
  6568.   remarks:     Saves the current buffer to the specified filename. If a
  6569.                filename is not specified, the buffer name of the current
  6570.                buffer is assumed. If the backup setting in the current
  6571.                window is On, the file is backed-up before saving.
  6572.  
  6573.   returns:     Non-zero if successful, otherwise zero.
  6574.   see also:    close, open, setname, setting, setting?
  6575.  
  6576.   example:     save
  6577.                  // saves the current buffer to the file name specified
  6578.                  //   by the name of the buffer
  6579.                save "c:\save.txt"
  6580.                  // saves the current buffer to c:\save.txt
  6581.  
  6582.  
  6583.   saveblock    filename opt=[abetxz] mark delimiter filedelim comment1
  6584.                comment2
  6585.   ──────────────────────────────────────────────────────────────────────
  6586.   remarks:     Saves marked text to the specified filename. If 'mark' is
  6587.                not specified, the default markid is assumed.
  6588.  
  6589.                All other arguments and options are identical to the
  6590.                'savebuf' function (see 'savebuf').
  6591.  
  6592.   returns:     TRUE if successful, otherwise null.
  6593.   see also:    loadbuf, savebuf
  6594.  
  6595.  
  6596.   savebuf      filename opt=[abetxz] buffer delimiter filedlm comment1
  6597.                comment2
  6598.   ──────────────────────────────────────────────────────────────────────
  6599.   remarks:     Saves a buffer to the specified filename. If 'filename'
  6600.                is not specified, the buffer name is assumed. If 'buffer'
  6601.                is null or not specified, then the current buffer is
  6602.                assumed.
  6603.  
  6604.                The following options may be specified:
  6605.  
  6606.                  a - append to end of the file when saving
  6607.                  b - save the file in binary mode, with no line
  6608.                      delimiters
  6609.                  e - entab the buffer while saving. The tabwidth is
  6610.                      specified after the 'e' option - for example: 'e8'.
  6611.                  t - trim trailing blanks and tabs from each line
  6612.                  x - disable conversion of folds to fold comments
  6613.                  z - append ctrl-z (Ascii 26) to the end of the file
  6614.                      when saving
  6615.  
  6616.                'delimiter' specifies a one or two byte line delimiter
  6617.                string to be appended to the end of each line in the
  6618.                saved file.
  6619.  
  6620.                If 'delimiter' is null or not specified, then the line
  6621.                delimiter used when loading the file is assumed. If the
  6622.                buffer was not loaded but created new, then a line
  6623.                delimiter of 0D0Ah (CR/LF) is assumed.
  6624.  
  6625.                'filedlm' specifies an alternate one byte file delimiter
  6626.                to save at the end of the file.
  6627.  
  6628.                'comment1' and 'comment2' specify the opening and closing
  6629.                comment strings to be used when converting text folds to
  6630.                fold comments during the saving process. Specifying
  6631.                option 'x' disables the saving of folds as fold comments.
  6632.  
  6633.   returns:     TRUE if successful, otherwise null.
  6634.   see also:    createbbuf, createbuf, destroybuf, loadbuf, saveblock
  6635.  
  6636.   example:     savebuf "c:\\file.txt"
  6637.                  // saves the current buffer to the file 'c:\file.txt',
  6638.                  //   and overwrites any previous data in the file.
  6639.                  //   The file is saved with CR/LF line delimiters.
  6640.                savebuf "c:\\file.txt" 'b' "abc"
  6641.                  // saves the buffer 'abc' to 'c:\file.txt' in binary
  6642.                  //   mode, with no line delimiters
  6643.                savebuf "c:\\file.txt" 't' '' (hex2bin "0A") (char 0)
  6644.                  // saves the current buffer to 'c:\file.txt' and
  6645.                  //   trims trailing blanks from each line. The file
  6646.                  //   is saved with '0A' (LF) line delimiters and a
  6647.                  //   file delimiter of Ascii 0.
  6648.  
  6649.  
  6650.   savedesk     filename                                         [Lib][a]
  6651.   ──────────────────────────────────────────────────────────────────────
  6652.   remarks:     Saves the current desktop to the specified filename. The
  6653.                current desktop is set by the 'opendesk', 'currdesk', and
  6654.                'openhistory' functions. The 'begdesk' and 'enddesk'
  6655.                functions also change the current desktop.
  6656.  
  6657.   returns:     TRUE is successful, otherwise null.
  6658.   see also:    begdesk, currdesk, enddesk, opendesk, restoredesk
  6659.  
  6660.   example:     currdesk
  6661.                  // set current desktop to the current window layout
  6662.                savedesk "c:\\desktop.dst"
  6663.                  // save the current desktop to c:\desktop.dst
  6664.  
  6665.  
  6666.   savehistory  filename                                         [Lib][a]
  6667.   ──────────────────────────────────────────────────────────────────────
  6668.   remarks:     Saves all existing history buffers and the current
  6669.                desktop to the specified filename.
  6670.   returns:     TRUE if successful, otherwise null.
  6671.   see also:    openhistory
  6672.  
  6673.  
  6674.   savekey      filename                                         [Lib][a]
  6675.   ──────────────────────────────────────────────────────────────────────
  6676.   remarks:     Saves all current key macros to the specified filename.
  6677.                The key macros can be reloaded later with the 'openkey'
  6678.                function.
  6679.   returns:     TRUE if successful, otherwise null.
  6680.   see also:    openkey
  6681.  
  6682.  
  6683.   say          message opt=[b]
  6684.   ──────────────────────────────────────────────────────────────────────
  6685.   remarks:     Displays the specified message at the location of the
  6686.                primary title (title 1) of the current window. If option
  6687.                'b' is specified, the PC speaker beeps. The message is
  6688.                cleared the next time the display is updated.
  6689.  
  6690.   returns:     nothing
  6691.   see also:    msgbox, okbox, shortbox, yncbox
  6692.  
  6693.   example:     say "Hello World"
  6694.  
  6695.  
  6696.   scanfile     filename searchstr opt=[iwx] delimiter
  6697.   ──────────────────────────────────────────────────────────────────────
  6698.   remarks:     Scans the specified filename for the string 'searchstr'.
  6699.                'delimiter' specifies the line delimiter used to separate
  6700.                lines in the file. If 'delimiter' is not specified, then
  6701.                CR/LF (0D0Ah) is assumed.
  6702.  
  6703.                Any of the following options may be specified:
  6704.  
  6705.                  i - ignores case during the scan
  6706.                  w - scans for whole words only
  6707.                  x - checks for regular expression chars in the search
  6708.                      string (see Regexp.dox)
  6709.  
  6710.   returns:     The absolute position in the file where the search string
  6711.                was found (starting with one), or zero if not found. If
  6712.                the scan was interrupted by <ctrl break>, then zero is
  6713.                returned.
  6714.  
  6715.   see also:    find, replace
  6716.  
  6717.   example:     scanfile "c:\\file.txt" "apples" "i"
  6718.                  // returns the first position in c:\file.txt where
  6719.                  //   'apples' is found (ignoring case), or zero if
  6720.                  //   not found
  6721.  
  6722.  
  6723.   scrollcol    column window
  6724.   ──────────────────────────────────────────────────────────────────────
  6725.   remarks:     Scrolls the text in window so that 'column' is the
  6726.                leftmost column in the window. The cursor is moved by the
  6727.                same amount that the text scrolls. If 'window' is not
  6728.                specified, the current window is assumed.
  6729.  
  6730.   returns:     TRUE if successful, otherwise null.
  6731.   see also:    scrollrow
  6732.  
  6733.   example:     scrollcol 4
  6734.                  // scrolls the current window so that the leftmost
  6735.                  //   column in the window is 4. The cursor moves
  6736.                  //   accordingly.
  6737.  
  6738.  
  6739.   scrollrow    row window
  6740.   ──────────────────────────────────────────────────────────────────────
  6741.   remarks:     Scrolls the text in window so that 'row' is the topmost
  6742.                line in the window. The cursor is moved by the same
  6743.                amount that the text scrolls. If 'window' is not
  6744.                specified, the current window is assumed.
  6745.  
  6746.   returns:     TRUE if successful, otherwise null.
  6747.   see also:    scrollcol
  6748.  
  6749.   example:     scrollrow 4
  6750.                  // scrolls the current window so that the topmost
  6751.                  //   line in the window is 4. The cursor moves
  6752.                  //   accordingly.
  6753.  
  6754.  
  6755.   search       searchstr/replstr/options reverse repeat         [Ext][a]
  6756.   ──────────────────────────────────────────────────────────────────────
  6757.   remarks:     Searches for the specified search string in the current
  6758.                buffer, and optionally replaces it with 'replstr'. This
  6759.                function provides a higher level interface to the 'find'
  6760.                and 'replace' builtin functions.
  6761.  
  6762.                The parameters 'searchstr/replstr/options' are entered
  6763.                together as one argument in multi-string format (see the
  6764.                'joinstr' and 'splitstr' functions).
  6765.  
  6766.                If no search options are explicitly specified, the
  6767.                variables SearchOpt and ReplaceOpt in Config.aml are
  6768.                assumed. See the 'find' function for a description of
  6769.                valid search options.
  6770.  
  6771.                If 'replstr' is specified and option 'a' (replace all) is
  6772.                not specified, the editor will prompt for each
  6773.                replacement.
  6774.  
  6775.                If 'reverse' is 'r', then the search proceeds in the
  6776.                reverse direction from the direction specified in the
  6777.                search options.
  6778.  
  6779.                If 'repeat' is TRUE, then search option 'g' (global
  6780.                search) will be ignored if specified.
  6781.  
  6782.   returns:     The same values as the 'find' and 'replace' builtin
  6783.                functions, depending on the action performed (find or
  6784.                replace) and the search options specified (see the 'find'
  6785.                and 'replace' functions).
  6786.  
  6787.   see also:    find, findlast, joinstr, replace, splitstr
  6788.  
  6789.   example:     search "apples"
  6790.                  // searches for the string 'apples' (case sensitive)
  6791.                  //   starting at one char to the right of the cursor
  6792.                  //   and searching toward the end of the buffer
  6793.                search "apples/ir*"
  6794.                  // searches for 'apples' (case insensitive) starting at
  6795.                  //   the cursor position and searching toward the
  6796.                  //   beginning of the buffer
  6797.                search "app'/les/bgw"
  6798.                  // searches for 'app/les' (whole words only), limiting
  6799.                  //   the search to the current mark and starting from
  6800.                  //   the beginning of the mark
  6801.                search "apples/oranges/ag"
  6802.                  // replaces all occurrences of 'apples' with 'oranges'
  6803.                  //   in the current buffer and returns the number of
  6804.                  //   occurrences. The cursor is not moved.
  6805.  
  6806.  
  6807.   send         function arg1 arg2 ...
  6808.   ──────────────────────────────────────────────────────────────────────
  6809.   remarks:     Calls a public function in the current event object whose
  6810.                name is the value of 'function', passing the optional
  6811.                arguments 'arg1', 'arg2', etc.
  6812.  
  6813.   returns:     The return value from calling the specified function.
  6814.   see also:    call, eval, pass, sendkey, sendobject
  6815.  
  6816.   example:     send <ctrl b>                // simulates <ctrl b>
  6817.                send '<' + "ctrl b" + '>'    // simulates <ctrl b>
  6818.  
  6819.  
  6820.   sendkey      keycode1 keycode2 ...
  6821.   ──────────────────────────────────────────────────────────────────────
  6822.   remarks:     Executes the specified keycodes immediately and
  6823.                synchronously, in the current event object.
  6824.  
  6825.   returns:     nothing
  6826.   see also:    geteventcode, getkey, queuekey, send, sendobject
  6827.  
  6828.   example:     keycode = getkey     // gets a keycode...
  6829.                sendkey keycode      // and executes it immediately
  6830.  
  6831.  
  6832.   sendobject   object function arg1 arg2 ...
  6833.   ──────────────────────────────────────────────────────────────────────
  6834.   remarks:     Calls a public function in the specified object whose
  6835.                name is the value of 'function', passing the optional
  6836.                arguments 'arg1', 'arg2', etc.
  6837.  
  6838.   returns:     The return value from calling the specified function.
  6839.   see also:    call, eval, pass, send, sendkey
  6840.  
  6841.   example:     sendobject "edit" <ctrl b>
  6842.                sendobject "edit" '<' + "ctrl b" + '>'
  6843.  
  6844.  
  6845.   set          variable value object
  6846.   ──────────────────────────────────────────────────────────────────────
  6847.   remarks:     Assigns a value to a public object variable in the
  6848.                specified object. If an object is not specified, the
  6849.                current object is assumed. If the variable does not
  6850.                already exist, then it is created.
  6851.  
  6852.   returns:     nothing
  6853.   see also:    destroyvar, lookup, setfunction, variable?
  6854.  
  6855.   example:     set "Two" 2
  6856.                set "number"  1 + 2 + x - 4
  6857.                set "TabWidth" 4 "edit"
  6858.  
  6859.  
  6860.   setalarm     timerid year mon day dayofweek hour min second object
  6861.                function arg1 arg2 ...
  6862.   ──────────────────────────────────────────────────────────────────────
  6863.   remarks:     Sets a timer to call 'function' automatically at the
  6864.                specified date and time. If -1 is specified for for any
  6865.                of the date or time parameters, the timer will call the
  6866.                function for any value of that parameter (the parameter
  6867.                becomes a 'wildcard').
  6868.  
  6869.                If -1 is specified for any of the arguments, the timer is
  6870.                a 'repeating' timer and is not destroyed, otherwise the
  6871.                timer is automatically destroyed after the function call.
  6872.  
  6873.                The function is called in the specified object, passing
  6874.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  6875.                is not specified, the current event object is assumed.
  6876.  
  6877.                'timerid' uniquely identifies the timer. If a timerid is
  6878.                not specified, a unique timerid is generated. A maximum
  6879.                of 16 timerid's may be active at one time.
  6880.  
  6881.   returns:     The timerid if successful, otherwise null.
  6882.   see also:    destroytimer, setrepeat, settimer, timer?
  6883.  
  6884.   example      setalarm "xyz"   // timerid 'xyz'
  6885.                   -1            // any year
  6886.                   -1            // any month
  6887.                   -1            // any day
  6888.                   -1            // any day of the week
  6889.                   22            // 10 o'clock at night
  6890.                    0            // zero minutes
  6891.                    0            // zero seconds
  6892.                   ''            // send to current event object
  6893.                   "abc"         // function 'abc'
  6894.  
  6895.                // the above example sets timer 'xyz' to call the function
  6896.                //  'abc' at 10 o'clock every night in the current event
  6897.                //  object
  6898.  
  6899.  
  6900.   setbook      bookmark buffer
  6901.   ──────────────────────────────────────────────────────────────────────
  6902.   remarks:     Creates a new bookmark or modifies an existing bookmark.
  6903.                The bookmark is placed at the current cursor position in
  6904.                the specified buffer. If the buffer is null or not
  6905.                specified, the current buffer is assumed.
  6906.  
  6907.   returns:     The bookmarkid if a bookmark is created, or TRUE if an
  6908.                existing bookmark is modified, otherwise null.
  6909.   see also:    destroybook
  6910.  
  6911.   example:     setbook 'A'
  6912.                  // places bookmark 'A' at the cursor position
  6913.  
  6914.  
  6915.   setbootpath  path
  6916.   ──────────────────────────────────────────────────────────────────────
  6917.   remarks:     Changes the editor 'boot' path for the current session.
  6918.   returns:     nothing
  6919.   see also:    bootpath, getbootpath
  6920.  
  6921.  
  6922.   setborder    opt=[ios012345] xd yd cornerX cornerY bchr1 bchr2 bchr3
  6923.                window
  6924.   ──────────────────────────────────────────────────────────────────────
  6925.   remarks:     Changes the border style of a window. If 'window' is not
  6926.                specified, the current window is assumed. The window must
  6927.                first be configured to allow borders by calling the
  6928.                'setframe' function.
  6929.  
  6930.                The following parameters can be specified:
  6931.  
  6932.                xd       - left and right border thickness
  6933.                yd       - top and bottom border thickness
  6934.                cornerX  - amount or horz overlap on the border corners
  6935.                cornerY  - amount or vert overlap on the border corners
  6936.                bchr1    - border fill character
  6937.                bchr2    - border corner fill character
  6938.                bchr3    - hex view divider character
  6939.  
  6940.                The following options can also be specified:
  6941.  
  6942.                  i - inward 3D effect
  6943.                  o - outward 3D effect
  6944.                  s - attempts to change the size of other parts of the
  6945.                      window to accommodate the new border style, without
  6946.                      changing the overall size of the window.
  6947.                  0 - use 'expanded' borders (the default)
  6948.  
  6949.                For the following options, the 'xd', 'yd', 'cornerX', and
  6950.                'cornerY', 'bchr1', and 'bchr2' parameters are ignored,
  6951.                and the horizontal and vertical border thickness is
  6952.                always one:
  6953.  
  6954.                  1 - single line
  6955.                  2 - double horizontal
  6956.                  3 - double vertical
  6957.                  4 - double line
  6958.                  5 - solid
  6959.                  6 - blank
  6960.  
  6961.                Specifying no options or parameters removes any existing
  6962.                borders.
  6963.  
  6964.   returns:     nothing
  6965.   see also:    getborder, setframe, setshadow
  6966.  
  6967.   example:     setborder
  6968.                  // removes the border
  6969.                setborder "1i"
  6970.                  // sets the border style to a single-line border with
  6971.                  //   an inward 3D effect
  6972.                setborder '0' 2 2 3 3
  6973.                  // sets the border style to an 'expanded' border with
  6974.                  //   border width 2 and corner size 3
  6975.  
  6976.  
  6977.   setbufname   name buffer
  6978.   ──────────────────────────────────────────────────────────────────────
  6979.   remarks:     Associates a descriptive name with a buffer.  If 'buffer'
  6980.                is null or not specified, then the current buffer is
  6981.                assumed.
  6982.  
  6983.                The buffer name is used by editor library functions to
  6984.                identify the current buffer, and is usually a fully
  6985.                qualified file name.
  6986.  
  6987.                Note: the 'loadbuf' function will automatically set the
  6988.                buffer name to the file name where the buffer was loaded
  6989.                ('setbufname' is not required).
  6990.  
  6991.   returns:     nothing
  6992.   see also:    getbufname
  6993.  
  6994.  
  6995.   setbuftabs   tabwidth buffer
  6996.   ──────────────────────────────────────────────────────────────────────
  6997.   remarks:     Sets the tab width used for displaying real tabs. If
  6998.                'buffer' is not specified, the current buffer is assumed.
  6999.  
  7000.                If the tabwidth is zero, then real tabs are displayed
  7001.                as-is (Ascii 9). Note that this function will also clear
  7002.                the undo/redo stack.
  7003.  
  7004.   returns:     nothing
  7005.   see also:    getbuftabs, undo, redo
  7006.  
  7007.  
  7008.   setcolor     component color window
  7009.   ──────────────────────────────────────────────────────────────────────
  7010.   remarks:     Changes the color attribute of a window component. If
  7011.                'window' is not specified, the current window is assumed.
  7012.  
  7013.                The following values can be specified for 'component':
  7014.  
  7015.                 0 - border
  7016.                 1 - border corners
  7017.                 2 - north and east titles
  7018.                 3 - south and west titles
  7019.                 4 - title bar controls
  7020.                 5 - text
  7021.                 6 - marks
  7022.                 7 - scroll bars
  7023.                 8 - menus
  7024.                 9 - menu character highlight
  7025.                10 - menu disable
  7026.                11 - menu bar highlight
  7027.                12 - end-of-text line
  7028.                13 - border highlight color
  7029.                14 - folds
  7030.                15 - modified lines
  7031.                16 - modified line at the cursor
  7032.                17 - open fold begin
  7033.                18 - open fold end
  7034.  
  7035.   returns:     nothing
  7036.   see also:    getcolor
  7037.  
  7038.   example:     setcolor 5 95
  7039.                  // sets the window text color to white on magenta
  7040.                setcolor 6 32
  7041.                  // sets the mark default color to black on green
  7042.  
  7043.  
  7044.   setcursor    opt=[rhiv+-] cursor buffer
  7045.   ──────────────────────────────────────────────────────────────────────
  7046.   remarks:     Creates a new cursor or changes the state of an existing
  7047.                cursor. If 'buffer' is null or not specified, then the
  7048.                current buffer is assumed. If 'cursor' is not specified,
  7049.                the current cursor is assumed.
  7050.  
  7051.                If 'cursor' refers to an existing cursor, it is modified
  7052.                according to the options specified, otherwise a new
  7053.                cursor is created. If a new cursor is created, it becomes
  7054.                the current cursor.
  7055.  
  7056.                Any of the following options may be specified:
  7057.  
  7058.                  i - cursor is in insert mode
  7059.                  h - cursor is hidden
  7060.                  v - blinking hardware cursor indicates position
  7061.                  - - turns off any specified options
  7062.                  + - turns on any specified options
  7063.  
  7064.   returns:     The cursorid if a cursor is created, or TRUE if an
  7065.                existing cursor is modified successfully, otherwise null.
  7066.   see also:    cursor?, destroycursor
  7067.  
  7068.  
  7069.   setdisplay   [-1/0/1]
  7070.   ──────────────────────────────────────────────────────────────────────
  7071.   remarks:     Enables (1) or disables (0) updating of the display. Note
  7072.                that any operations involving window sizing, movement, or
  7073.                reordering will still update the display, even if the
  7074.                display is disabled with this function.
  7075.  
  7076.                If -1 is specified, the display is 'validated' and the
  7077.                next screen update will be skipped. This allows you to
  7078.                draw on the text in an Edit or File Manager window,
  7079.                leaving your changes visible until the following screen
  7080.                update.
  7081.  
  7082.   returns:     nothing
  7083.   see also:    display
  7084.  
  7085.   example:     setdisplay OFF   // disable display for faster execution
  7086.                playkey          // play the scrap key macro
  7087.                setdisplay ON    // enable the display
  7088.  
  7089.                writestr "Hello"   // write 'Hello' in an edit window
  7090.                setdisplay -1      // allow it to remain visible
  7091.  
  7092.  
  7093.   setdraw      opt=[01234] window                               [Lib][a]
  7094.   ──────────────────────────────────────────────────────────────────────
  7095.   remarks:     Changes the line drawing style for an edit window. If
  7096.                'window' is not specified, the current window is assumed.
  7097.                One of the following options can be specified:
  7098.  
  7099.                  0 - single lines
  7100.                  1 - double horizontal lines
  7101.                  2 - double vertical lines
  7102.                  3 - double horizontal and vertical lines
  7103.                  4 - eraser
  7104.  
  7105.   returns:     nothing
  7106.   see also:    setting
  7107.  
  7108.   example:     setdraw 3
  7109.                  // sets the line drawing style to double horizontal
  7110.                  //   and vertical lines
  7111.  
  7112.  
  7113.   seterror     errorcode errorstring
  7114.   ──────────────────────────────────────────────────────────────────────
  7115.   remarks:     Generates an AML compiler error with the specified error
  7116.                code when called from within a constant function or
  7117.                #exec-#endexec block at compile-time. Any error code can
  7118.                be specified, including new user-defined errorcodes. Both
  7119.                the errorcode and errorstring (if specified) can be
  7120.                retrieved later via the 'geterror' function.
  7121.  
  7122.                This function can be useful in checking for any number of
  7123.                user-defined error conditions at compile time, such as
  7124.                invalid arguments passed to a constant function, required
  7125.                files or resources not found, etc.
  7126.  
  7127.   returns:     nothing
  7128.   see also:    geterror
  7129.  
  7130.  
  7131.   seteventobj  object
  7132.   ──────────────────────────────────────────────────────────────────────
  7133.   remarks:     Changes the current event object to the specified object.
  7134.                The current event object is the object where events are
  7135.                dispatched by the editor. If 'object' is not specified,
  7136.                the current (executing) object is assumed.
  7137.  
  7138.                Note: if a window has been associated with an event
  7139.                object via the 'setwinobj' function, the current event
  7140.                object is automatically changed to the window object when
  7141.                the window becomes the current window.
  7142.  
  7143.   returns:     TRUE if successful, otherwise null.
  7144.   see also:    geteventobj, setwinobj
  7145.  
  7146.  
  7147.   setfileattr  filename attributes=[ahrs]
  7148.   ──────────────────────────────────────────────────────────────────────
  7149.   remarks:     Changes the attributes of the file 'filename'. Any of the
  7150.                following attributes can be specified:
  7151.  
  7152.                  a - archive
  7153.                  h - hidden
  7154.                  r - read-only
  7155.                  s - system
  7156.                  null - no attributes
  7157.  
  7158.   returns:     Non-zero if successful, otherwise zero.
  7159.   see also:    fileattr?
  7160.  
  7161.   example:     setfileattr "c:\\file.txt" 'r'
  7162.                  // makes c:\\file.txt a read-only file
  7163.  
  7164.  
  7165.   setframe     opt=[bwneshvm2345z>+-]  window westwidth eastwidth
  7166.   ──────────────────────────────────────────────────────────────────────
  7167.   remarks:     Adds or removes window frame components. If 'window' is
  7168.                not specified, the current window is assumed.
  7169.  
  7170.                Any of the following options can be specified:
  7171.  
  7172.                  + - add specified components to the window
  7173.                  - - remove specified components from the window
  7174.  
  7175.                  (if neither '+' or '-' are specified, then the window
  7176.                   frame components are replaced)
  7177.  
  7178.                  b - border
  7179.                  e - east title bar
  7180.                  h - horizontal scroll bar
  7181.                  m - primary menu bar
  7182.                  n - north title bar
  7183.                  s - south title bar
  7184.                  v - vertical scroll bar
  7185.                  w - west title bar
  7186.                  z - south title controls
  7187.                  2 - menu bar 2 (north)
  7188.                  3 - menu bar 3 (north)
  7189.                  4 - menu bar 4 (south)
  7190.                  5 - menu bar 5 (west)
  7191.                  > - place north title bar in the window border
  7192.                      (for bordertype > 0)
  7193.                  < - place south title bar in the window border
  7194.                      (for bordertype > 0)
  7195.  
  7196.                Specifying no options will remove all window frame
  7197.                components.
  7198.  
  7199.                The following parameters can also be specified:
  7200.  
  7201.                  westwidth - the width of the west title, if present
  7202.                  eastwidth - the width of the east title, if present
  7203.  
  7204.   returns:     nothing
  7205.   see also:    frame?, setborder, setshadow
  7206.  
  7207.   example:     setframe
  7208.                  // removes all frame components from the current window
  7209.                setframe "bn"
  7210.                  // replaces the current window frame components with
  7211.                  //   a border and a north title bar
  7212.                setframe "+s"
  7213.                  // adds a south title bar to the current window
  7214.  
  7215.  
  7216.   setfunction  function expression object
  7217.   ──────────────────────────────────────────────────────────────────────
  7218.   remarks:     Changes the definition of a public function in the
  7219.                specified object to the macro source code in the string
  7220.                'expression'. If an object is not specified, the current
  7221.                object is assumed. If the function does not already
  7222.                exist, then it is created.
  7223.  
  7224.                This statement can be used to change the definition of a
  7225.                function at run-time.
  7226.  
  7227.   returns:     nothing
  7228.   see also:    destroyvar, function?, lookup, set
  7229.  
  7230.   example:     setfunction "<ctrl d>"  "beep 400 400"  "edit"
  7231.                  // assigns the macro code 'beep 400 400' to <ctrl d>
  7232.                  //   in the object 'edit'
  7233.  
  7234.  
  7235.   setgroupbox  initvalue valuemap window                        [Lib][a]
  7236.   ──────────────────────────────────────────────────────────────────────
  7237.   remarks:     Re-initializes the checked/unchecked state of check boxes
  7238.                and radio buttons in a group box, after the group box has
  7239.                already been created. If 'window' (the group box window
  7240.                id) is not specified, the current window is assumed. See
  7241.                the 'group' function for a description of 'initvalue' and
  7242.                'valuemap'.
  7243.   returns:     nothing
  7244.   see also:    dialog, group, whenenter, whenselect
  7245.  
  7246.  
  7247.   setname      filename                                      [Lib][edit]
  7248.   ──────────────────────────────────────────────────────────────────────
  7249.   remarks:     Changes the buffer name in the current edit window to the
  7250.                specified filename. The primary window title (title 1) is
  7251.                also changed.
  7252.   returns:     1 if successful, -1 if the filename is invalid, or -2 if
  7253.                the filename is already loaded.
  7254.   see also:    close, open, save, setbufname, settitle
  7255.  
  7256.  
  7257.   setnextwin   nextwindow window
  7258.   ──────────────────────────────────────────────────────────────────────
  7259.   remarks:     Changes the order of windows on the screen by placing
  7260.                'nextwindow' on top of 'window'. If 'window' is not
  7261.                specified, the current window is assumed.
  7262.   returns:     Non-zero if successful, otherwise null.
  7263.   see also:    getnextwin, getprevwin, setprevwin
  7264.  
  7265.  
  7266.   setobjtype   object parentobj1 parentobj2...
  7267.   ──────────────────────────────────────────────────────────────────────
  7268.   remarks:     Sets the inheritance path of the specified object to
  7269.                parentobj1, parentobj2, etc. After this function is
  7270.                called, the specified object will inherit functions and
  7271.                object variables from parentobj1, parentobj2, etc.
  7272.  
  7273.   returns:     nothing
  7274.   see also:    inheritkeys, object, objtype?, settype
  7275.  
  7276.  
  7277.   setpalette   position charstring
  7278.   ──────────────────────────────────────────────────────────────────────
  7279.   remarks:     Fills a 100-byte user-defined color palette area with
  7280.                'charstring', starting at the specified position in the
  7281.                palette. The editor library code (Lib.x) expects color
  7282.                attributes to be in the positions defined in Color.aml.
  7283.   returns:     nothing
  7284.   see also:    getpalatte
  7285.   example:     see Color.aml
  7286.  
  7287.  
  7288.   setparent    parent window
  7289.   ──────────────────────────────────────────────────────────────────────
  7290.   remarks:     Makes 'parent' the parent window of 'window'. If 'window'
  7291.                is not specified, the current window is assumed.
  7292.   returns:     Non-zero if successful, otherwise null.
  7293.   see also:    getparent
  7294.  
  7295.  
  7296.   setprevwin   prevwindow window
  7297.   ──────────────────────────────────────────────────────────────────────
  7298.   remarks:     Changes the order of windows on the screen by placing
  7299.                'window' on top of 'prevwindow'. If 'window' is not
  7300.                specified, the current window is assumed.
  7301.   returns:     Non-zero if successful, otherwise null.
  7302.   see also:    getnextwin, getprevwin, setnextwin
  7303.  
  7304.  
  7305.   setrepeat    timerid milliseconds object function arg1 arg2 ...
  7306.   ──────────────────────────────────────────────────────────────────────
  7307.   remarks:     Sets a timer to call 'function' automatically at regular
  7308.                intervals. 'milliseconds' specifies the time interval in
  7309.                milliseconds. The first function call will occur after
  7310.                the specified time interval has expired (not after the
  7311.                'setrepeat' call).
  7312.  
  7313.                The function is called in the specified object, passing
  7314.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  7315.                is not specified, the current event object is assumed.
  7316.  
  7317.                'timerid' uniquely identifies the timer. If a timerid is
  7318.                not specified, a unique timerid is generated. A maximum
  7319.                of 16 timerid's may be active at one time.
  7320.  
  7321.   returns:     The timerid if successful, otherwise null.
  7322.   see also:    destroytimer, setalarm, settimer, timer?
  7323.  
  7324.   example:     setrepeat "xyz" 1000 '' "abc"
  7325.                  // sets timerid 'xyz' to call the function 'abc' every
  7326.                  //   second in the current event object
  7327.                setrepeat "t1" 0 '' "idle"
  7328.                  // sets timerid 't1' to call the function 'idle'
  7329.                  //   repeatedly in the current event object whenever
  7330.                  //   the editor is idle
  7331.  
  7332.  
  7333.   setshadow    right bottom window
  7334.   ──────────────────────────────────────────────────────────────────────
  7335.   remarks:     Adds or removes window shadows. If 'window' is not
  7336.                specified, the current window is assumed.
  7337.  
  7338.                'bottom' and 'right' specify the shadow thickness on the
  7339.                bottom and right borders. If 'bottom' and 'right' are
  7340.                zero or null, the shadow is removed.
  7341.  
  7342.   returns:     nothing
  7343.   see also:    setborder, setframe, setshadow2
  7344.  
  7345.   example:     setshadow
  7346.                  // removes any shadows from the current window
  7347.                setshadow 2 1
  7348.                  // sets the shadow thickness to 2 on the right border
  7349.                  //   and 1 on the bottom border
  7350.  
  7351.  
  7352.   setshadow2   color window
  7353.   ──────────────────────────────────────────────────────────────────────
  7354.   remarks:     Adds or removes a one-half width shadow. If 'window' is
  7355.                not specified, the current window is assumed. 'color'
  7356.                specifies the shadow color.
  7357.  
  7358.                This function is intended for use with stationary windows
  7359.                on a blank background (such as dialog box controls).
  7360.  
  7361.   returns:     nothing
  7362.   see also:    setshadow
  7363.  
  7364.  
  7365.   setsyntax    [0/1] object window
  7366.   ──────────────────────────────────────────────────────────────────────
  7367.   remarks:     Enables (1) or disables (0) syntax highlighting for a
  7368.                window. If 'window' is not specified, the current window
  7369.                is assumed. Specifying 'object' will change the syntax
  7370.                highlighting object associated with the window.
  7371.   returns:     nothing
  7372.   see also:    getsyntax, keyword
  7373.  
  7374.  
  7375.   settimer     timerid milliseconds object function arg1 arg2 ...
  7376.   ──────────────────────────────────────────────────────────────────────
  7377.   remarks:     Sets a timer to call 'function' automatically after a
  7378.                specified time interval. 'milliseconds' specifies the
  7379.                time interval in milliseconds. The timer is automatically
  7380.                destroyed when the function is called.
  7381.  
  7382.                The function is called in the specified object, passing
  7383.                the optional arguments 'arg1', 'arg2', etc. If 'object'
  7384.                is not specified, the current event object is assumed.
  7385.  
  7386.                'timerid' uniquely identifies the timer. If a timerid is
  7387.                not specified, a unique timerid is generated. A maximum
  7388.                of 16 timerid's may be active at one time.
  7389.  
  7390.   returns:     The timerid if successful, otherwise null.
  7391.   see also:    destroytimer, setalarm, setrepeat, timer?
  7392.  
  7393.   example:     settimer "xyz" 1000 '' "abc"
  7394.                  // sets timerid 'xyz' to call the function 'abc' one
  7395.                  //   second later in the current event object
  7396.  
  7397.  
  7398.   setting      settings [0/1/2/-1] object                    [Lib][edit]
  7399.   ──────────────────────────────────────────────────────────────────────
  7400.   remarks:     Changes or toggles the specified window settings. Any
  7401.                combination of the following settings may be specified:
  7402.  
  7403.                  a - Autoindent
  7404.                  b - Backup
  7405.                  d - Draw mode
  7406.                  h - Hex view
  7407.                  i - Insert mode
  7408.                  l - Live Word Wrap
  7409.                  m - Match Character
  7410.                  s - Smart tabs
  7411.                  t - Translate
  7412.                  u - Undo enabled
  7413.                  v - Variable tabs
  7414.                  w - Word Wrap (standard)
  7415.                  x - Syntax Highlighting
  7416.  
  7417.                If setting 'x' is turned on, 'object' defines the syntax
  7418.                highlighting object to use. If 'object' is not specified,
  7419.                the 'onsyntax' event is sent to obtain the syntax
  7420.                highlighting object.
  7421.  
  7422.                After the 'settings' argument, one of the following
  7423.                values can be specified:
  7424.  
  7425.                  0 - turns specified settings Off
  7426.                  1 - turns specified settings On
  7427.                 -1 - toggles specified settings
  7428.                  2 - sets specified settings to default values
  7429.  
  7430.                An object may be specified
  7431.  
  7432.   returns:     nothing
  7433.   see also:    getsettings, setting?
  7434.  
  7435.   example:     settings "abu" 1
  7436.                  // turns On autoindent, backup, and undo
  7437.                settings "xd" 0
  7438.                  // turns Off syntax highlighting and drawmode
  7439.                settings "w" -1
  7440.                  // toggles word wrap
  7441.  
  7442.  
  7443.   setting?     settings                                       [Lib][mon]
  7444.   ──────────────────────────────────────────────────────────────────────
  7445.   remarks:     Tests if any of the specified window settings are On. See
  7446.                the 'setting' command for a description of window
  7447.                settings.
  7448.  
  7449.   returns:     Non-zero if one of the specified settings is On,
  7450.                otherwise null.
  7451.  
  7452.   see also:    getsettings, setting
  7453.  
  7454.   example:     setting? "lw"
  7455.                  // tests if word wrap or live word wrap are On
  7456.  
  7457.  
  7458.   settitle     string opt=[nsewlcrdxh1z] titleid[1-5] window
  7459.   ──────────────────────────────────────────────────────────────────────
  7460.   remarks:     Changes a window title. If 'window' is null or not
  7461.                specified, then the current window is assumed.
  7462.  
  7463.                Each window can have up to 5 titles. 'titleid' (1-5)
  7464.                specifies the window title to change. If the 'titleid'
  7465.                is null or not specified, then 1 (the primary title) is
  7466.                assumed.
  7467.  
  7468.                Any combination of the following options can be
  7469.                specified:
  7470.  
  7471.                  e - places the title on east title bar
  7472.                  n - places the title on north title bar
  7473.                  s - places the title on south title bar
  7474.                  w - places the title on west title bar
  7475.  
  7476.                  l - left justifies the title
  7477.                  c - centers the title
  7478.                  r - right justifies the title
  7479.  
  7480.                  d - redraws the window title immediately after this
  7481.                      function call
  7482.  
  7483.                  x - sets the title to the 'default status line'. The
  7484.                      status line displays information about the buffer
  7485.                      (if any) displayed in the window.
  7486.  
  7487.                  h - checks for the highlight character "&". Specifying
  7488.                      "&" before a character in the title indicates that
  7489.                      the character is to be highlighted.
  7490.  
  7491.                  1 - the title is not padded with spaces. Normally the
  7492.                      title is padded with one space if it is left or
  7493.                      right justified.
  7494.  
  7495.                  z - hides the title. This can be used to associate a
  7496.                      string with a window by storing it as a hidden
  7497.                      window title, and should be used when specifying a
  7498.                      title for the end-of-text line (see the 'eotstring'
  7499.                      function).
  7500.  
  7501.                If no options are specified, and the title has not been
  7502.                previously set, the options 'nl1' are assumed. If the
  7503.                title has been previously set, then the options of the
  7504.                previous title are assumed.
  7505.  
  7506.   returns:     TRUE if successful, otherwise null.
  7507.   see also:    eotstring, gettitle
  7508.  
  7509.   example:     settitle "Hello World"
  7510.                  // sets window title 1 to 'Hello World'
  7511.                settitle "Hello World" "cs" 3
  7512.                  // sets window title 3 to 'Hello World' and
  7513.                  //   centers it on the south title bar
  7514.  
  7515.  
  7516.   settype      parentobj parentobj2 ...
  7517.   ──────────────────────────────────────────────────────────────────────
  7518.   remarks:     Sets the inheritance path of the current object to
  7519.                parentobj1, parentobj2, etc. After this function is
  7520.                called, the current object will inherit functions and
  7521.                object variables from parentobj1, parentobj2, etc.
  7522.  
  7523.   returns:     nothing
  7524.   see also:    inheritkeys, object, objtype?, setobjtype
  7525.  
  7526.   example:     settype "win"
  7527.                  // the current object now inherits functions and
  7528.                  // object variables from the object 'win'
  7529.  
  7530.  
  7531.   setvideo     cols rows color fillstring
  7532.   ──────────────────────────────────────────────────────────────────────
  7533.   remarks:     Changes the video mode and/or sets the background color
  7534.                attribute and background fill string. Either operation
  7535.                can be done separately or simultaneously.
  7536.  
  7537.                When changing the video mode, 'cols' must be 40 or 80 and
  7538.                'rows' must be 12, 14, 21, 25, 28, 43, or 50. If 'cols'
  7539.                or 'rows' are zero or null, the video mode is not
  7540.                changed.
  7541.  
  7542.                Specifying either 'color' or 'fillstring' changes the
  7543.                video background. If 'color' is not specified, black (0)
  7544.                is assumed. If 'fillstring' is not specified, blanks are
  7545.                assumed. The maximum size of 'fillstring' is 50
  7546.                characters.
  7547.  
  7548.   returns:     TRUE if successful, otherwise null.
  7549.   see also:    videomode
  7550.  
  7551.  
  7552.   setwinctrl   controlstring rightcontrol window
  7553.   ──────────────────────────────────────────────────────────────────────
  7554.   remarks:     Changes the one-character title bar controls for a
  7555.                window. If 'window' is not specified, the current window
  7556.                is assumed. Controls are normally placed on the north
  7557.                title bar unless south title bar controls are specified
  7558.                with the 'setframe' function.
  7559.  
  7560.                'controlstring' is a string of the one-character title
  7561.                bar controls to appear on the title bar from left to
  7562.                right.
  7563.  
  7564.                By default, controls are left justified on the title bar.
  7565.                If specified, 'rightcontrol' defines the character
  7566.                position in 'controlstring' of the first right justified
  7567.                control.
  7568.  
  7569.   returns:     TRUE if successful, otherwise null.
  7570.   see also:    getwinctrl
  7571.  
  7572.   example:     setwinctrl ""
  7573.                  // places one left justified control () on the
  7574.                  //   title bar
  7575.                setwinctrl "≡" 2
  7576.                  // places 3 controls on the title bar. (≡) is
  7577.                  //   left justified, () and () are right justified
  7578.  
  7579.  
  7580.   setwincurs   cursor window
  7581.   ──────────────────────────────────────────────────────────────────────
  7582.   remarks:     Attaches a cursor to a window and associates a buffer
  7583.                with a window. If 'window' is not specified, the current
  7584.                window is assumed. When a cursor is attached to a window,
  7585.                the window will display the buffer associated with the
  7586.                cursor.
  7587.  
  7588.                If 'cursor' is null or not specified, then the cursor is
  7589.                detached from the window and the window will no longer
  7590.                display a buffer.
  7591.  
  7592.                Only one cursor may be associated with a window at one
  7593.                time. Windows that do not display a buffer do not need to
  7594.                use this call.
  7595.  
  7596.   returns:     TRUE if successful, otherwise null.
  7597.   see also:    getwincurs
  7598.  
  7599.  
  7600.   setwinobj    object window
  7601.   ──────────────────────────────────────────────────────────────────────
  7602.   remarks:     Sets the window event object associated with a window. If
  7603.                'window' is not specified, the current window is assumed.
  7604.                This function also changes the current event object to
  7605.                'object'.
  7606.  
  7607.                Whenever a window becomes the current window, the current
  7608.                event object is set to the window event object. This
  7609.                allows an object 'class' to be associated with an
  7610.                individual window.
  7611.  
  7612.   returns:     nothing
  7613.   see also:    getwinobj, seteventobj
  7614.  
  7615.   example:     setwinobj "edit"
  7616.                  // sets the event object for the current window to
  7617.                  //   'edit', and also changes the current event object
  7618.                  //   to 'edit'
  7619.  
  7620.  
  7621.   shiftblock   (+/-)cols  mark fillchar
  7622.   ──────────────────────────────────────────────────────────────────────
  7623.   remarks:     Shifts marked text to the left or to the right. If 'mark'
  7624.                is not specified, the default markid is assumed.
  7625.  
  7626.                'cols' specifies the number of columns to shift. Positive
  7627.                values shift text to the right and negative values shift
  7628.                text to the left.
  7629.  
  7630.                'fillchar' is the character to use when filling empty
  7631.                spaces created by shifting to the right. If 'fillchar' is
  7632.                not specified, blanks (Ascii 32) are assumed.
  7633.  
  7634.   returns:     TRUE if successful, otherwise null.
  7635.   see also:    delchar, instext
  7636.  
  7637.   example:     shiftblock -1
  7638.                  // shifts the text in default markid one space to the
  7639.                  //   left
  7640.                shiftblock  1 '' '>'
  7641.                  // shifts the text in the default markid one space to
  7642.                  //   the right, filling empty spaces with '>'
  7643.  
  7644.  
  7645.   shiftkey?    shiftstate
  7646.   ──────────────────────────────────────────────────────────────────────
  7647.   remarks:     Tests if the specified shift key(s) are currently pressed
  7648.                down. 'shiftstate' can be any combination of the
  7649.                following values bitwise-ORed together:
  7650.  
  7651.                  01h - right shift key down   10h - scroll lock On
  7652.                  02h - left shift key down    20h - num lock On
  7653.                  04h - ctrl key down          40h - caps lock On
  7654.                  08h - alt key down           80h - insert On
  7655.  
  7656.                If shiftstate is not specified, then a value of 03h
  7657.                (right and left shift keys) is assumed.
  7658.  
  7659.   returns:     Non-zero if the specified shift keys are down, otherwise
  7660.                zero.
  7661.  
  7662.   see also:    event?, keyhit?
  7663.  
  7664.   example:     shiftkey?
  7665.                  // tests if the left or right shift keys are pressed
  7666.                shiftkey? 12h
  7667.                  // tests if the <ctrl> or <alt> keys are pressed
  7668.  
  7669.  
  7670.   shortbox     message title opt=[b]                            [Lib][a]
  7671.   ──────────────────────────────────────────────────────────────────────
  7672.   remarks:     Displays the specified message in a popup window without
  7673.                an 'Ok' button. If a title is not specified, 'Message' is
  7674.                assumed. If option 'b' is specified, the PC speaker
  7675.                beeps.
  7676.  
  7677.   returns:     nothing
  7678.   see also:    msgbox, okbox, say, yncbox
  7679.  
  7680.   example:     shortbox "This is a message with a beep!" 'b'
  7681.  
  7682.  
  7683.   showcursor   top bottom
  7684.   ──────────────────────────────────────────────────────────────────────
  7685.   remarks:     Shows the physical cursor in the current window. If the
  7686.                current window contains a buffer, the effects of
  7687.                this function are temporary and may disappear the next
  7688.                time the display is updated.
  7689.  
  7690.                If 'top' and 'bottom' are specified, the physical cursor
  7691.                size is changed. 'top' and 'bottom' indicate the distance
  7692.                of the top and bottom of the cursor from the top of the
  7693.                character cell, on a scale of 0 to 99.
  7694.  
  7695.   returns:     nothing
  7696.   see also:    hidecursor
  7697.  
  7698.   example:     showcursor 0 99
  7699.                  // sets the cursor size to fill the entire char cell
  7700.                showcursor 50 99
  7701.                  // sets the cursor size to fill the bottom half of
  7702.                  //   the character cell
  7703.  
  7704.  
  7705.   showdialog                                                    [Lib][a]
  7706.   ──────────────────────────────────────────────────────────────────────
  7707.   remarks:     Tags the current dialog box as a 'modeless' dialog box.
  7708.                The dialog box will function as an independent window on
  7709.                the desktop (existing windows on the screen can be placed
  7710.                on top of a modeless dialog box). This function returns
  7711.                immediately, without actually displaying the dialog box.
  7712.  
  7713.                The 'whenenter' and 'whenselect' functions can be used to
  7714.                process events from dialog box controls.
  7715.  
  7716.   returns:     nothing
  7717.   see also:    dialog, getdialog, whenenter, whenselect
  7718.  
  7719.   example:     dialog "Test Dialog Box" 40 8
  7720.                button "O&k" 17 2 8
  7721.                // tag the dialog box as modeless
  7722.                showdialog
  7723.  
  7724.  
  7725.   showentry 
  7726.   ──────────────────────────────────────────────────────────────────────
  7727.   remarks:     Temporarily displays the screen as it appeared in Dos
  7728.                immediately before the editor was started. Pressing any
  7729.                key or mouse button will restore the editor screen.
  7730.   returns:     nothing
  7731.   see also:    display
  7732.  
  7733.  
  7734.   showmouse 
  7735.   ──────────────────────────────────────────────────────────────────────
  7736.   remarks:     Shows the mouse pointer.
  7737.   returns:     nothing
  7738.   see also:    hidemouse
  7739.  
  7740.  
  7741.   showwindow   window
  7742.   ──────────────────────────────────────────────────────────────────────
  7743.   remarks:     Re-displays a window that was previously hidden with the
  7744.                'hidewindow' function. If 'window' is null or not
  7745.                specified, then the current window is assumed.
  7746.   returns:     nothing
  7747.   see also:    hidewindow
  7748.  
  7749.  
  7750.   sizekey                                                     [Lib][win]
  7751.   ──────────────────────────────────────────────────────────────────────
  7752.   remarks:     Resizes the current window using the cursor keys.
  7753.   returns:     nothing
  7754.   see also:    pankey, sizewin
  7755.  
  7756.  
  7757.   sizequeue    size
  7758.   ──────────────────────────────────────────────────────────────────────
  7759.   remarks:     Removes all events from the event queue and changes the
  7760.                event queue size to 'size' events. Values of 5 through
  7761.                200 may be specified. The default queue size is 20 when
  7762.                the editor is started.
  7763.   returns:     Non-zero if successful, otherwise zero.
  7764.   see also:    dispatch, process
  7765.  
  7766.  
  7767.   sizewin      l t r b reps opt=[acdrswz1] window             [Lib][win]
  7768.   ──────────────────────────────────────────────────────────────────────
  7769.   remarks:     Resizes the specified window. If 'window' is not
  7770.                specified, the current window is assumed.
  7771.  
  7772.                This function is nearly identical to the 'sizewindow'
  7773.                builtin function, except that the window title bar
  7774.                controls are set properly after resizing, and 'reps'
  7775.                (sizing repetitions) can be specified.
  7776.  
  7777.   returns:     nothing
  7778.   see also:    movewindow, sizewindow
  7779.  
  7780.  
  7781.   sizewindow   l t r b opt=[acdrswz1] window relativewindow
  7782.   ──────────────────────────────────────────────────────────────────────
  7783.   remarks:     Changes the size and position of a window. If 'window' is
  7784.                not specified, the current window is assumed. When a
  7785.                window is resized, all parts of the window are redrawn
  7786.                immediately.
  7787.  
  7788.                'l', 't', 'r', and 'b' specify the new window
  7789.                coordinates. The following options can be specified:
  7790.  
  7791.                a - The coordinates are absolute and are based at an
  7792.                    'origin'. The location of the origin depends on which
  7793.                    of the following options are also specified:
  7794.  
  7795.                    d - the origin is located at the top left corner of
  7796.                        the physical screen
  7797.                    w - the origin is located at the top left corner of
  7798.                        the window 'relativewindow'
  7799.                    1 - the origin is located at the top left corner of
  7800.                        the client area of the window 'relativewindow'
  7801.                    z - the origin is located at the virtual coordinates
  7802.                        (0,0)
  7803.  
  7804.                    If option 'a' is specified and none of the above
  7805.                    options are specified, then 'd' is assumed.
  7806.  
  7807.                r - the coordinates are relative to another rectangle on
  7808.                    the screen. 'l', 't', 'r', and 'b' specify relative
  7809.                    offsets from the left, top, right, and bottom edges
  7810.                    of the rectangle. The location of the rectangle
  7811.                    depends on which of the following options are also
  7812.                    specified:
  7813.  
  7814.                    d - the rectangle is the physical screen
  7815.                    w - the rectangle is the main window area of the
  7816.                        window 'relativewindow'
  7817.                    1 - the rectangle is the client area of the window
  7818.                        'relativewindow'
  7819.                    z - the rectangle is the main window area of the
  7820.                        window being resized (relative to itself, in
  7821.                        other words)
  7822.  
  7823.                    If option 'r' is specified and none of the above
  7824.                    options are specified, then 'z' is assumed.
  7825.  
  7826.                c - the coordinates specify the size of the client area
  7827.                    of the window being sized, not the entire window.
  7828.  
  7829.                s - scrolls the window to keep the cursor visible, if
  7830.                    needed
  7831.  
  7832.                If no options are specified, options 'rz' are assumed.
  7833.  
  7834.   returns:     TRUE if successful, otherwise null.
  7835.   see also:    getcoord, movewindow
  7836.  
  7837.   example:     sizewindow -1 -1 1 1
  7838.                  // expands the current window size by 1 in all four
  7839.                  //   directions
  7840.                sizewindow 0 0 0 0 "rd"
  7841.                  // sizes the current window to fill the entire screen
  7842.                  //  with all the borders visible
  7843.                sizewindow 6 5 72 20 "ad"
  7844.                  // sizes the current window relative to the upper
  7845.                  //  left corner of the screen
  7846.                sizewindow 6 5 72 20 "a1" '' "abc"
  7847.                  // sizes the current window relative to the upper
  7848.                  //  left corner of the client area of window 'abc'
  7849.  
  7850.  
  7851.   sortblock    opt=[di] mark column
  7852.   ──────────────────────────────────────────────────────────────────────
  7853.   remarks:     Sorts marked lines. If 'mark' is not specified, the
  7854.                default markid is assumed.
  7855.  
  7856.                For column marks, the text between the left and right
  7857.                edges of the mark is used as the sort key.
  7858.  
  7859.                For line marks, the text between 'column' and the end of
  7860.                the line is used as the sort key. If 'column' is not
  7861.                specified, one is assumed.
  7862.  
  7863.                For all other marks, the entire line is used as the sort
  7864.                key. In any case, all lines spanned by the mark are
  7865.                sorted, not just the text within the mark.
  7866.  
  7867.                One of the following options may be specified:
  7868.  
  7869.                  d - sort in descending order
  7870.                  i - ignore case when sorting
  7871.  
  7872.   returns:     TRUE if successful, otherwise null.
  7873.  
  7874.  
  7875.   speaker      [0/1]
  7876.   ──────────────────────────────────────────────────────────────────────
  7877.   remarks:     Enables (1) or disables (0) sound from the PC speaker.
  7878.   returns:     nothing
  7879.   see also:    beep
  7880.  
  7881.  
  7882.   splitline    col row buffer
  7883.   ──────────────────────────────────────────────────────────────────────
  7884.   remarks:     Splits one line into two lines in a buffer. If 'buffer'
  7885.                is null or not specified, then the current buffer is
  7886.                assumed.
  7887.  
  7888.                'row' specifies which line is to be split and 'col'
  7889.                specifies the column where the split is to occur. If
  7890.                'row' and 'col' are not specified, the current cursor
  7891.                position is assumed.
  7892.  
  7893.                All characters after, and including the specified column
  7894.                are moved to column one in a new line after the line to
  7895.                be split.
  7896.  
  7897.   returns:     TRUE if successful, otherwise null.
  7898.   see also:    delline, insabove, insline, joinline
  7899.  
  7900.   example:     splitline
  7901.                  // splits the current line at the cursor in the
  7902.                  //   current buffer
  7903.                splitline 10
  7904.                  // splits the current line at column 10
  7905.  
  7906.  
  7907.   splitstr     delimit+quote multistring ref1 ref2 ...
  7908.   ──────────────────────────────────────────────────────────────────────
  7909.   remarks:     Splits an editor 'multistring' (created by the 'joinstr'
  7910.                function) into individual strings. The 'delimit' and
  7911.                'quote' characters are used as delimiters and literal
  7912.                quoting characters to separate the string (see 'joinstr'
  7913.                above).
  7914.  
  7915.                If 'delimit' and 'quote' are not specified, then the
  7916.                default delimiter character is a slash (/) and the
  7917.                default quote character is a backquote (`).
  7918.  
  7919.                'ref1', 'ref2', etc. refer to variables passed by
  7920.                reference which are to contain the resulting component
  7921.                strings (see the 'ref' keyword).
  7922.  
  7923.   returns:     This function returns the number of component strings in
  7924.                the multistring. The actual component strings are
  7925.                returned in variables passed by reference to this
  7926.                function.
  7927.  
  7928.   see also:    joinstr, ref
  7929.  
  7930.   example:     splitstr '' "abc/def/xyz" ref a ref b ref c
  7931.                  // returns 'abc' in a, 'def' in b, and 'xyz' in c.
  7932.                  // the entire function call returns '3'
  7933.  
  7934.                splitstr "|\\" "abc|x\|yz" ref a ref b
  7935.                  // returns 'abc' in a, and 'x|yz' in b.
  7936.                  // the entire function call returns '2'
  7937.  
  7938.  
  7939.   splitwin     opt=[hv]                                      [Lib][edit]
  7940.   ──────────────────────────────────────────────────────────────────────
  7941.   remarks:     Splits the current edit window. The following options may
  7942.                be specified:
  7943.  
  7944.                  h - favor horizontal splits
  7945.                  v - favor vertical splits
  7946.  
  7947.   returns:     TRUE if successful, otherwise null.
  7948.   see also:    copywin
  7949.  
  7950.  
  7951.   stopmark     mark
  7952.   ──────────────────────────────────────────────────────────────────────
  7953.   remarks:     Closes an 'open' mark created with the markline,
  7954.                markcolumn, markchar, or markstream functions. This stops
  7955.                the automatic extension of the mark when the cursor is
  7956.                moved. If 'mark' is not specified, the default markid is
  7957.                assumed.
  7958.  
  7959.   returns:     nothing
  7960.   see also:    extendmark, markchar, markcolumn, markline, markstream
  7961.  
  7962.   example:     markline   // marks the current line
  7963.                stopmark   // stop cursor extension of the mark
  7964.  
  7965.  
  7966.   sub          searchstr replacestr string opt=[irwx]
  7967.   ──────────────────────────────────────────────────────────────────────
  7968.   remarks:     Replaces all occurrences of 'searchstr' found in 'string'
  7969.                with 'replacestr'. Any of the following search options
  7970.                may be specified:
  7971.  
  7972.                  i - ignore case
  7973.                  r - search in reverse from the end of the string
  7974.                  w - whole words only
  7975.                  x - use regular expressions (see Regexp.dox)
  7976.  
  7977.                Specifying a null replace string will remove all
  7978.                occurrences of 'searchstr' within 'string'.
  7979.  
  7980.   returns:     The new string resulting from the substitution of
  7981.                'replacestr' for all occurrences of the search string.
  7982.  
  7983.   see also:    pos, poschar, posnot
  7984.  
  7985.   example:     sub 'p' '112' "apples"      // returns 'a112112les'
  7986.                sub 'es' 'y' "apples"       // returns 'apply'
  7987.                sub 'PL' '' "apples" 'i'    // returns 'apes'
  7988.  
  7989.  
  7990.   submenu      menuname                                         [Lib][a]
  7991.   ──────────────────────────────────────────────────────────────────────
  7992.   remarks:     Displays the specified menu as a submenu. This function
  7993.                is only intended for use within a pulldown menu.
  7994.   returns:     nothing
  7995.   see also:    getmenu, gotomenu, menu
  7996.  
  7997.  
  7998.   swapfiles    swapfile1 swapfile2 swapfile3
  7999.   ──────────────────────────────────────────────────────────────────────
  8000.   remarks:     Defines swap files for the editor to use in low memory
  8001.                situations. If available, EMS and XMS memory will always
  8002.                be used before the swap files are created.
  8003.  
  8004.                'swapfile2' will only be used when there is no room on
  8005.                the drive containing 'swapfile1', and 'swapfile3' will
  8006.                only be used when there is no room on the drive
  8007.                containing 'swapfile2'. All swap files should be on
  8008.                different drives.
  8009.  
  8010.                Note: this function may only be called once during an
  8011.                edit session.
  8012.  
  8013.   returns:     TRUE if successful, otherwise null.
  8014.   see also:    maxems, maxxms, memoptions
  8015.  
  8016.  
  8017.   syntax       opt=[bcdfin] symbols1 symbols2 stringchars stringlit
  8018.                numeric eolcom1 startcol1 eolcom2 startcol2 opencom1
  8019.                closecom1 opencom2 closecom2 backscan keywordcolor
  8020.                symbol1color symbol2color stringcolor numericcolor
  8021.                eolcomment1color eolcomment2color comment1color
  8022.                comment2color
  8023.   ──────────────────────────────────────────────────────────────────────
  8024.   remarks:     Defines a syntax highlighting template for the current
  8025.                (executing) object. A syntax highlighting template can be
  8026.                customized to highlight the source code of almost any
  8027.                programming language, or even text files.
  8028.  
  8029.                Any of the following syntax highlighting options can be
  8030.                specified:
  8031.  
  8032.                  b - highlighting shows through marked blocks
  8033.                  c - enable highlighting for the cursor line
  8034.                  d - enable highlighting for closed fold lines
  8035.                  f - use only the foreground portion of the specified
  8036.                      colors, and use the existing background color of
  8037.                      the window
  8038.                  i - ignore keyword case
  8039.                  n - automatically highlight numbers
  8040.  
  8041.                The following parameters can also be specified:
  8042.  
  8043.                symbols1     - defines a set of 1-character symbols to
  8044.                               be highlighted. A maximum of 40 symbols
  8045.                               can be specified.
  8046.  
  8047.                symbols2     - defines an alternate set of 1-character
  8048.                               symbols to be highlighted with a different
  8049.                               color. A maximum of 40 symbols can be
  8050.                               specified for symbols1 and symbols2
  8051.                               combined.
  8052.  
  8053.                stringchars  - defines up to 3 one-character string
  8054.                               symbols used to enclose highlighted
  8055.                               character strings.
  8056.  
  8057.                stringlit    - the character used to indicate a literal
  8058.                               character in a character string.
  8059.  
  8060.                numeric      - the character (if any) used to indicate a
  8061.                               numeric value.
  8062.  
  8063.                eolcom1      - single line comment symbol 1 (10 char max)
  8064.                startcol1    - the required start column for 'eolcom1'.
  8065.                               If not specified, all columns are checked.
  8066.  
  8067.                eolcom2      - single line comment symbol 2 (10 char max)
  8068.                startcol2    - the required start column for 'eolcom2'.
  8069.                               If not specified, all columns all checked.
  8070.  
  8071.                opencom1     - the start symbol for multiline comment 1
  8072.                               (10 char max)
  8073.                closecom1    - the end symbol for multiline comment 1
  8074.                               (10 char max)
  8075.  
  8076.                opencom2     - the start symbol for multiline comment 2
  8077.                               (10 char max)
  8078.                closecom2    - the end symbol for multiline comment 2
  8079.                               (10 char max)
  8080.  
  8081.                backscan     - the number of lines to scan backwards to
  8082.                               check if a multiline comment is in effect
  8083.                               (500 line max)
  8084.  
  8085.                The following syntax highlighting colors attributes may
  8086.                also be specified:
  8087.  
  8088.                  keywordcolor   stringcolor    eolcom2color
  8089.                  symbol1color   numericcolor   comment1color
  8090.                  symbol2color   eolcom1color   comment2color
  8091.  
  8092.                If option 'f' is specified, and the window foreground
  8093.                color is equal to the foreground portion (lower 4 bits)
  8094.                of any of the above colors, then the background portions
  8095.                (upper 4 bits) of these colors are used as alternate
  8096.                foreground colors. This allows you to change the window
  8097.                color without having to change the syntax highlighting
  8098.                color definitions.
  8099.  
  8100.   returns:     nothing
  8101.   see also:    keyword, setsyntax
  8102.  
  8103.   example:     see the configuration file Syntax.aml
  8104.  
  8105.  
  8106.   system       program opt=[chk]
  8107.   ──────────────────────────────────────────────────────────────────────
  8108.   remarks:     Executes a Dos program. Any of the following options may
  8109.                be specified:
  8110.  
  8111.                  c - clears the screen before executing
  8112.                  h - displays the header "Type EXIT to return" after
  8113.                      executing the program
  8114.                  k - prompts the user with a keypress to return to the
  8115.                      editor
  8116.  
  8117.                Since the Dos 'PATH' is not searched, 'program' should be
  8118.                fully qualified or reside in the current directory. If
  8119.                the path of the program is not known, the function
  8120.                'locatefile' can be used to search the Dos path.
  8121.  
  8122.   returns:     the Dos errorlevel
  8123.   see also:    delay, halt, locatefile
  8124.  
  8125.  
  8126.   tabblock     (+/-)tabwidth[1-64] mark
  8127.   ──────────────────────────────────────────────────────────────────────
  8128.   remarks:     Entabs or detabs marked text. If 'mark' is not specified,
  8129.                the default markid is assumed.
  8130.  
  8131.                'tabwidth' specifies the tab width to use. If 'tabwidth'
  8132.                is not specified, then 8 is assumed.
  8133.  
  8134.                If 'tabwidth' is positive, then tab characters (Ascii 9)
  8135.                are converted into spaces (detab).
  8136.  
  8137.                If 'tabwidth' is negative, then spaces are converted into
  8138.                tab characters (entab). Spaces occurring on a line after
  8139.                a single quote, double quote, or tab character will not
  8140.                be entabbed.
  8141.  
  8142.   returns:     TRUE if successful, otherwise null.
  8143.  
  8144.  
  8145.   thousands    number
  8146.   ──────────────────────────────────────────────────────────────────────
  8147.   remarks:     Converts a number into a thousands-separated string. The
  8148.                'international' function determines what thousands
  8149.                separator character is used.
  8150.  
  8151.   returns:     a thousands-separated string.
  8152.   see also:    international
  8153.  
  8154.   example:     thousands 12345678    // returns '12,345,678'
  8155.  
  8156.  
  8157.   tile         opt=[hvlr] limit                               [Lib][win]
  8158.   ──────────────────────────────────────────────────────────────────────
  8159.   remarks:     Tiles all non-minimized windows on the screen, and sets
  8160.                the maximize/restore title bar controls correctly for
  8161.                each window. See the 'tilewindow' function for a
  8162.                description of the options and the 'limit' argument.
  8163.  
  8164.   returns:     nothing
  8165.   see also:    cascade, splitwin, tilewindow
  8166.  
  8167.  
  8168.   tilewindow   opt=[hvlb] limit splitnum window
  8169.   ──────────────────────────────────────────────────────────────────────
  8170.   remarks:     Tiles windows on the screen, or 'splits' a window into
  8171.                tiles. If 'window' is not specified, the current window
  8172.                is assumed.
  8173.  
  8174.                'limit' specifies the maximum number of tiles. If 'limit'
  8175.                is null or zero, then all windows are tiled.
  8176.  
  8177.                'splitnum' specifies the maximum number of tiles that can
  8178.                be oriented in one direction before the next tile is
  8179.                oriented in a perpendicular direction. If 'splitnum' is
  8180.                null or zero, 2 is assumed.
  8181.  
  8182.                The following options can be specified:
  8183.  
  8184.                  h - favors horizontal splits
  8185.                  v - favors vertical splits
  8186.                  l - tile only the specified window and any other
  8187.                      windows which display the same buffer
  8188.                  r - reverses the tiling order by starting with the
  8189.                      nth window on the screen, where n='limit'
  8190.  
  8191.                If no options are specified, then 'h' is assumed.
  8192.  
  8193.   returns:     TRUE if successful, otherwise null.
  8194.   see also:    getcoord, movewindow, sizewindow
  8195.  
  8196.   example:     tilewindow
  8197.                  // tiles all windows horizontally on the screen
  8198.                tilewindow 'lv'
  8199.                  // vertically tiles any windows which display
  8200.                  //   the same buffer as the current window
  8201.  
  8202.  
  8203.   timer?       timerid
  8204.   ──────────────────────────────────────────────────────────────────────
  8205.   remarks:     Tests if the specified timer is active.
  8206.   returns:     TRUE if timerid is active, otherwise null.
  8207.   see also:    destroytimer, setalarm, settimer
  8208.  
  8209.  
  8210.   toolbar                                                    [Lib][edit]
  8211.   ──────────────────────────────────────────────────────────────────────
  8212.   remarks:     Toggles the display of a toolbar on the current edit
  8213.                window. The toolbar is defined in Menu.aml.
  8214.   returns:     nothing
  8215.   see also:    togglestyle
  8216.  
  8217.  
  8218.   touchfile    filename
  8219.   ──────────────────────────────────────────────────────────────────────
  8220.   remarks:     Changes the last-modified date and time for the specified
  8221.                file to the current date and time.
  8222.   returns:     Non-zero if successful, otherwise zero.
  8223.   see also:    copyfile, setfileattr
  8224.  
  8225.  
  8226.   trackmouse                                                    [Lib][a]
  8227.   ──────────────────────────────────────────────────────────────────────
  8228.   remarks:     Moves the cursor to the mouse pointer in the current
  8229.                buffer.
  8230.   returns:     nothing
  8231.   see also:    getmousex, getmousey, mousepos, virtocol, virtorow
  8232.  
  8233.  
  8234.   undo         buffer
  8235.   ──────────────────────────────────────────────────────────────────────
  8236.   remarks:     Reverses the changes made by the last undoable function
  8237.                (or group of functions marked with undobegin - undoend)
  8238.                for a specific buffer. If 'buffer' is null or not
  8239.                specified, then the current buffer is assumed.
  8240.   returns:     TRUE if successful, otherwise null.
  8241.   see also:    redo, undobegin, undoend
  8242.  
  8243.  
  8244.   undobegin 
  8245.   ──────────────────────────────────────────────────────────────────────
  8246.   remarks:     Marks the beginning of a group of function calls which
  8247.                are considered to be one undoable/redoable editing
  8248.                operation. The group is terminated by a matching
  8249.                'undoend' function. 'undobegin' and 'undoend' pairs may
  8250.                be nested.
  8251.  
  8252.                Undo/redo information for all undoable function calls
  8253.                within this group is saved as one undoable operation on
  8254.                the undo/redo stack for each operation's buffer. The
  8255.                follow types of editing functions are undoable:
  8256.  
  8257.                  - functions which modify buffers
  8258.                  - functions which create or modify marks
  8259.                  - functions which create or modify text folds
  8260.  
  8261.                The current cursor position, window size, and window
  8262.                view, are also saved on the undo/redo stack.
  8263.  
  8264.                When the 'undo' or 'redo' functions are called, all
  8265.                undoable editing operations within the group are 'undone'
  8266.                together at one time.
  8267.  
  8268.   returns:     nothing
  8269.   see also:    redo, undo, undocursor, undoend
  8270.  
  8271.   example:     undobegin                // groups 3 editing operations
  8272.                delline                  //   together as one undoable
  8273.                writetext "some text"    //   operation
  8274.                insline "new line"
  8275.                undoend
  8276.  
  8277.  
  8278.   undocursor   buffer
  8279.   ──────────────────────────────────────────────────────────────────────
  8280.   remarks:     Saves the current window size, window view, and cursor
  8281.                position on the undo/redo stack as one undoable
  8282.                operation. If 'buffer' is null or not specified, then the
  8283.                current buffer is assumed.
  8284.   returns:     nothing
  8285.   see also:    redo, undo, undobegin, undoend
  8286.  
  8287.  
  8288.   undoend 
  8289.   ──────────────────────────────────────────────────────────────────────
  8290.   remarks:     Marks the end of a group of undoable/redoable function
  8291.                calls started with the 'undobegin' function (see
  8292.                'undobegin' above).
  8293.   returns:     nothing
  8294.   see also:    redo, undo, undobegin
  8295.  
  8296.  
  8297.   undosize     size buffer
  8298.   ──────────────────────────────────────────────────────────────────────
  8299.   remarks:     Sets the undo/redo stack size for a buffer to 'size'
  8300.                editing operations. If 'buffer' is null or not specified,
  8301.                the current buffer is assumed. Setting the undo/redo
  8302.                stack size to zero disables undo/redo for the specified
  8303.                buffer.
  8304.  
  8305.                The stack size determines the maximum number of undoable
  8306.                editing operations (single or group) that will be saved
  8307.                for each buffer. When an undoable operation is performed
  8308.                and the size limit is exceeded, the undo information for
  8309.                the least-recently performed operation is discarded.
  8310.  
  8311.                When a buffer is initially created, the undo/redo stack
  8312.                size is set to zero (undo is disabled). Whenever the
  8313.                undo/redo stack size is changed with this function, all
  8314.                previous undo/redo information for the buffer is erased.
  8315.  
  8316.   returns:     nothing
  8317.   see also:    redo, undo, undobegin, undoend
  8318.  
  8319.   example:     undosize
  8320.                  // disables undo for the current buffer
  8321.                undosize 200
  8322.                  // deletes the current undo stack and sets the undo
  8323.                  //   stack size for the current buffer to 200
  8324.                  //   editing operations
  8325.  
  8326.  
  8327.   up           rows buffer
  8328.   ──────────────────────────────────────────────────────────────────────
  8329.   remarks:     Moves the cursor upward. 'rows' specifies the number of
  8330.                lines to move. If 'rows' is not specified, then one is
  8331.                assumed. If 'buffer' is null or not specified, the
  8332.                current buffer is assumed.
  8333.  
  8334.   returns:     the new cursor line number if successful, otherwise null.
  8335.   see also:    down, left, right
  8336.  
  8337.   example:     up         // moves the cursor up 1 row
  8338.                up 5       // moves the cursor up 5 rows
  8339.  
  8340.  
  8341.   upcase       string
  8342.   ──────────────────────────────────────────────────────────────────────
  8343.   remarks:     Converts a string to uppercase.
  8344.   returns:     the string in uppercase.
  8345.   see also:    flipcase, locase
  8346.   example:     upcase "peaches"      // returns "PEACHES"
  8347.  
  8348.  
  8349.   usemark      mark
  8350.   ──────────────────────────────────────────────────────────────────────
  8351.   remarks:     Sets the default markid to 'mark'. If 'mark' is not
  8352.                specified, the markid '*' is assumed. When the editor is
  8353.                started, the default markid is '*'.
  8354.  
  8355.   returns:     The previous default markid.
  8356.   see also:    getmarkuse
  8357.  
  8358.   example:     oldmark = usemark 'T'
  8359.                  // set the default markid to 'T'
  8360.                  :
  8361.                usemark oldmark
  8362.                  // always restore the default markid
  8363.  
  8364.  
  8365.   variable?    variable object
  8366.   ──────────────────────────────────────────────────────────────────────
  8367.   remarks:     Tests if the specified public variable exists in the
  8368.                object 'objectname'. If 'objectname' is not specified,
  8369.                the current object is assumed. Parent objects will also
  8370.                be checked.
  8371.   returns:     TRUE if the variable exists, otherwise null.
  8372.   see also:    function?, lookup
  8373.  
  8374.  
  8375.   videoborder  color
  8376.   ──────────────────────────────────────────────────────────────────────
  8377.   remarks:     Changes the video overscan border color to the specified
  8378.                color.
  8379.   returns:     nothing
  8380.  
  8381.  
  8382.   videomode    cols rows                                        [Lib][a]
  8383.   ──────────────────────────────────────────────────────────────────────
  8384.   remarks:     Changes the current video mode to 'cols' x 'rows'. 'cols'
  8385.                must be 40 or 80 and 'rows' must be 12, 14, 21, 25, 28,
  8386.                43, or 50.
  8387.  
  8388.   returns:     nothing
  8389.   see also:    setvideo
  8390.  
  8391.   example:     videomode 80 28    // change the video mode to 80 x 28
  8392.                videomode 80 50    // change the video mode to 80 x 50
  8393.  
  8394.  
  8395.   virtocol     virtualX window
  8396.   ──────────────────────────────────────────────────────────────────────
  8397.   remarks:     Converts a virtual screen X-coordinate to a column in a
  8398.                window. If 'window' is not specified, the current window
  8399.                is assumed. If 'virtualX' is not specified, the current
  8400.                mouse pointer position is assumed.
  8401.  
  8402.   returns:     the window column.
  8403.   see also:    virtorow
  8404.  
  8405.   example:     say (virtocol)
  8406.                  // displays the column in the current window where
  8407.                  //   the mouse pointer is located
  8408.  
  8409.  
  8410.   virtorow     virtualY window
  8411.   ──────────────────────────────────────────────────────────────────────
  8412.   remarks:     Converts a virtual screen Y-coordinate to a row in a
  8413.                window. If 'window' is not specified, the current window
  8414.                is assumed. If 'virtualY' is not specified, the current
  8415.                mouse pointer position is assumed.
  8416.  
  8417.   returns:     the window row.
  8418.   see also:    virtocol
  8419.  
  8420.   example:     say (virtorow)
  8421.                  // displays the row in the current window where
  8422.                  //   the mouse pointer is located
  8423.  
  8424.  
  8425.   whenenter    functionn                                        [Lib][a]
  8426.   ──────────────────────────────────────────────────────────────────────
  8427.   remarks:     Defines an event-handling function to be called by the
  8428.                most recently defined dialog box control, when the
  8429.                control has the focus and the <enter> key (or equivalent)
  8430.                is pressed. The control 'id' (a number indicating the
  8431.                order in which the control was defined) is passed to the
  8432.                event-handling function.
  8433.  
  8434.   returns:     nothing
  8435.   see also:    dialog, getdialog, showdialog, whenselect
  8436.  
  8437.   example:     dialog "Test Dialog Box" 40 8
  8438.                button "&Test" 17 4 8
  8439.                whenenter "testbutton"
  8440.                  // beep when the 'Test' button is pressed
  8441.                function testbutton (id)
  8442.                  msgbox "You pressed control #" + id
  8443.                end 
  8444.                getdialog
  8445.  
  8446.  
  8447.   whenselect   function                                         [Lib][a]
  8448.   ──────────────────────────────────────────────────────────────────────
  8449.   remarks:     Defines an event-handling function to be called by the
  8450.                most recently defined group box or list box control, when
  8451.                an item is selected within the control (without pressing
  8452.                <enter> or the equivalent). The function is also called
  8453.                when an edit field is updated from history.
  8454.  
  8455.                The control 'id' (a number indicating the order in which
  8456.                the control was defined) is passed to the event-handling
  8457.                function.
  8458.  
  8459.   returns:     nothing
  8460.   see also:    dialog, getdialog, showdialog, whenenter
  8461.  
  8462.   example:     dialog "Test Dialog Box" 40 8
  8463.                groupbox 'Radio Buttons: ' 10 2
  8464.                  ( menu ''
  8465.                      item " ( ) Beep at &200hz"
  8466.                      item " ( ) Beep at &400hz"
  8467.                      item " ( ) Beep at &600hz"
  8468.                    end )
  8469.                whenselect "radio"
  8470.                function radio (id)
  8471.                  beep getrow * 200 500
  8472.                end 
  8473.                getdialog
  8474.  
  8475.  
  8476.   window?      window
  8477.   ──────────────────────────────────────────────────────────────────────
  8478.   remarks:     Tests if a window exists. If 'window' is not specified,
  8479.                the current window is assumed.
  8480.   returns:     TRUE if the window exists, otherwise null.
  8481.   see also:    frame?, wintype?
  8482.  
  8483.  
  8484.   windowflag   opt=[ds-] window
  8485.   ──────────────────────────────────────────────────────────────────────
  8486.   remarks:     Turns window flags on or off, or tests if a window flag
  8487.                is turned on. If 'window' is null or not specified, the
  8488.                current window is assumed. The following flags can be
  8489.                specified:
  8490.  
  8491.                  h - display the hex-view. The following additional
  8492.                      flags can be specified:
  8493.  
  8494.                      1 - display the hardware cursor on the first hex
  8495.                          character
  8496.  
  8497.                      2 - display the hardware cursor on the second hex
  8498.                          character
  8499.  
  8500.                      If flags 1 and 2 are off, the hardware cursor is
  8501.                      displayed the in normal text portion of the window.
  8502.  
  8503.                  p - send the <paint> event in the window event object
  8504.                      after the window client area is updated. This
  8505.                      allows custom drawing or highlighting of the window
  8506.                      client area to be performed.
  8507.  
  8508.                  s - send the <status> event in the window event object
  8509.                      before the status line is updated. The return value
  8510.                      of <status> will become the actual status line,
  8511.                      allowing the status line to be customized.
  8512.  
  8513.                  z - resizeable window
  8514.  
  8515.                  - - turn specified flags off
  8516.                  + - turn specified flags on
  8517.                  ? - return true if specified flags are on
  8518.  
  8519.                If flags are specified without -, +, or ?, then they will
  8520.                be turned on and any other flags not specified will be
  8521.                turned off.
  8522.  
  8523.   returns:     TRUE if '?' is specified with flags that are on,
  8524.                otherwise null
  8525.  
  8526.  
  8527.   winlist                                                       [Lib][a]
  8528.   ──────────────────────────────────────────────────────────────────────
  8529.   remarks:     Displays a list of open windows. If a window is selected,
  8530.                it becomes the current window.
  8531.   returns:     nothing
  8532.   see also:    currwin
  8533.  
  8534.  
  8535.   wintype?     object window
  8536.   ──────────────────────────────────────────────────────────────────────
  8537.   remarks:     Tests if the specified object is located in the
  8538.                inheritance path of the window event object. If 'window'
  8539.                is not specified, the current window is assumed.
  8540.  
  8541.   returns:     TRUE if 'object' is located in the inheritance path of
  8542.                the window event object, otherwise null.
  8543.  
  8544.   see also:    objtype?
  8545.  
  8546.   example:     wintype? "edit_fmgr"
  8547.                  // tests if the object 'edit_fmgr' is located in the
  8548.                  //   inheritance path of the window (tests if the
  8549.                  //   window is a fmgr window or an edit window)
  8550.  
  8551.  
  8552.   write        string                                 [Ext][edit,prompt]
  8553.   ──────────────────────────────────────────────────────────────────────
  8554.   remarks:     Enters a string into the current buffer at the cursor
  8555.                position, and moves the cursor to the end of the string.
  8556.                If the cursor is in insert mode, the string is inserted
  8557.                into the text, otherwise the string is overlaid onto the
  8558.                text.
  8559.  
  8560.                This function is similar to the 'writetext' function, but
  8561.                also provides support for the following window settings:
  8562.  
  8563.                - Hex View
  8564.                - Live Word Wrap
  8565.                - Match Character
  8566.                - Standard Word Wrap
  8567.                - Translate
  8568.  
  8569.   returns:     nothing
  8570.   see also:    instext, ovltext, writetext
  8571.  
  8572.   example:     write "some text"
  8573.  
  8574.  
  8575.   writefile    string opt=[k] handle
  8576.   ──────────────────────────────────────────────────────────────────────
  8577.   remarks:     Writes the specified string at the current position in
  8578.                the open file specified by 'handle'. If a file handle is
  8579.                not specified, then the file handle returned from the
  8580.                most recent openfile call is assumed.
  8581.  
  8582.                The current position in the file is advanced by the
  8583.                number of characters written. If option 'k' is specified,
  8584.                the file date and time are not modified.
  8585.  
  8586.   returns:     The number of characters written if successful, otherwise
  8587.                null.
  8588.   see also:    closefile, filepos, openfile, readfile
  8589.  
  8590.  
  8591.   writeline    string color col row
  8592.   ──────────────────────────────────────────────────────────────────────
  8593.   remarks:     Displays the specified string in the current window using
  8594.                the color attribute 'color'. If 'col' and 'row' are not
  8595.                specified, the current cursor position is assumed. If
  8596.                'color' is not specified, the window 'text' color is
  8597.                assumed (see 'setcolor').
  8598.  
  8599.                The current cursor position is moved to column one of the
  8600.                next row. If the cursor was on the last row in the
  8601.                window, the window contents are scrolled up by one line.
  8602.  
  8603.                If the current window contains a buffer, the effects of
  8604.                this function (except for cursor movement) are temporary
  8605.                and will disappear the next time the display is updated.
  8606.  
  8607.   returns:     nothing
  8608.  
  8609.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  8610.                gotoxy, hilite, writestr
  8611.  
  8612.   example:     writeline "some text"
  8613.                  // writes the string 'some text' at the cursor and
  8614.                  //   moves the cursor to the next line
  8615.                writeline "some text" 95
  8616.                  // writes the string 'some text' at the cursor with the
  8617.                  //   color white on magenta, and moves the cursor to
  8618.                  //   the next line
  8619.  
  8620.  
  8621.   writestr     string color col row
  8622.   ──────────────────────────────────────────────────────────────────────
  8623.   remarks:     Displays the specified string in the current window using
  8624.                the color attribute 'color'. If 'col' and 'row' are not
  8625.                specified, the current cursor position is assumed. If
  8626.                'color' is not specified, the window 'text' color is
  8627.                assumed (see 'setcolor').
  8628.  
  8629.                The current cursor position is moved one column past the
  8630.                end of the string.
  8631.  
  8632.                If the current window contains a buffer, the effects of
  8633.                this function (except for cursor movement) are temporary
  8634.                and will disappear the next time the display is updated.
  8635.  
  8636.   returns:     nothing
  8637.  
  8638.   see also:    fillrect, getattr, getstr, getx, gety, gotoscreen,
  8639.                gotoxy, hilite, writeline
  8640.  
  8641.   example:     writestr "some text"
  8642.                  // writes the string 'some text' at the cursor
  8643.                writestr "some text" 95
  8644.                  // writes the string 'some text' at the cursor with the
  8645.                  //   color white on magenta
  8646.  
  8647.  
  8648.   writetext    string col row buffer
  8649.   ──────────────────────────────────────────────────────────────────────
  8650.   remarks:     Enters a string into a buffer at the specified row and
  8651.                column, and moves the cursor to the end of the string. If
  8652.                the cursor is in insert mode, then the text is inserted,
  8653.                otherwise the text is overlaid.
  8654.  
  8655.                If 'buffer' is null or not specified, then the current
  8656.                buffer is assumed. If 'col' and 'row' are not specified,
  8657.                then the string is inserted at the current cursor
  8658.                position.
  8659.  
  8660.   returns:     TRUE if successful, otherwise null.
  8661.   see also:    delchar, ovltext, write
  8662.  
  8663.   example:     writetext "some text"
  8664.                  // writes 'some text' at the cursor in the current
  8665.                  //   buffer
  8666.                writetext "some text" 2 20
  8667.                  // writes 'some text' at column 2, line 20 in the
  8668.                  //   current buffer
  8669.                writetext "some text" 1 1 "abc"
  8670.                  // writes 'some text' at column 1, line 1 in the
  8671.                  //   buffer "abc"
  8672.  
  8673.  
  8674.   yncbox       message  title                                   [Lib][a]
  8675.   ──────────────────────────────────────────────────────────────────────
  8676.   remarks:     Displays the specified message in a popup window with
  8677.                'Yes', 'No', and 'Cancel' buttons. If a title is not
  8678.                specified, 'Message' is assumed.
  8679.  
  8680.   returns:     The name of the button pressed (Yes, No, or Cancel), or
  8681.                null if no button was pressed.
  8682.  
  8683.   see also:    msgbox, okbox, say, shortbox
  8684.  
  8685.   example:     yncbox "Replace the string?" "Replace"
  8686.  
  8687.  
  8688.  
  8689.  ┌─────────────────────────────────────────────────────────────────────┐
  8690.  │ Builtin Events                                                      │
  8691.  └─────────────────────────────────────────────────────────────────────┘
  8692.  
  8693.   <compiling>  filename linenumber
  8694.   ──────────────────────────────────────────────────────────────────────
  8695.   remarks:     This event is sent by the editor (A.exe) while a macro
  8696.                language source file is being compiled, and can be used
  8697.                to show progress during macro compilation.
  8698.  
  8699.                <compiling> is sent directly to the current event object
  8700.                and is passed the name of the file being compiled and the
  8701.                line number of the last line compiled. After the file is
  8702.                compiled, <compiling> is sent again with no arguments.
  8703.  
  8704.   returns:     none required
  8705.   see also:    <loading>, <printing>, <saving>
  8706.   example:     see the configuration file Ext.aml
  8707.  
  8708.  
  8709.   <destroy> 
  8710.   ──────────────────────────────────────────────────────────────────────
  8711.   remarks:     This event is sent by the editor (A.exe) to an object
  8712.                immediately before it is destroyed. It can be used to
  8713.                perform cleanup tasks in external macros, such as closing
  8714.                windows, setting flags, destroying buffers, timers, etc.
  8715.   returns:     None required
  8716.  
  8717.  
  8718.   <display> 
  8719.   ──────────────────────────────────────────────────────────────────────
  8720.   remarks:     This event is sent by the editor (A.exe) to the current
  8721.                event object immediately after the display is updated.
  8722.   see also:    <paint>, <status>
  8723.  
  8724.  
  8725.   <loading>    linenumber
  8726.   ──────────────────────────────────────────────────────────────────────
  8727.   remarks:     This event is sent by the editor (A.exe) as a file is
  8728.                being loaded, and can be used to show progress when
  8729.                loading a file.
  8730.  
  8731.                <loading> is sent directly to the current event object
  8732.                and is passed the line number of the last line loaded.
  8733.                After the file is loaded, <loading> is sent again with no
  8734.                arguments.
  8735.  
  8736.   returns:     none required
  8737.   see also:    <compiling>, <printing>, <saving>
  8738.   example:     see the configuration file Ext.aml
  8739.  
  8740.  
  8741.   <paint> 
  8742.   ──────────────────────────────────────────────────────────────────────
  8743.   remarks:     This event is sent by the editor (A.exe) immediately
  8744.                after a window client area is updated (the 'd' window
  8745.                flag must be turned on - see the 'windowflag' function).
  8746.                <paint> can be used to perform custom drawing or
  8747.                highlighting of the window client area.
  8748.  
  8749.                <paint> is called directly in the window event object
  8750.                with no arguments. Before calling this function, the
  8751.                editor sets the current window, current event object, and
  8752.                current buffer to those values associated with the window
  8753.                being drawn.
  8754.  
  8755.   returns:     none required
  8756.   see also:    <status>, windowflag
  8757.  
  8758.  
  8759.   <printing>   linenumber
  8760.   ──────────────────────────────────────────────────────────────────────
  8761.   remarks:     This event is called by the editor (A.exe) as a file is
  8762.                being printed, and can be used to show progress when
  8763.                printing a file.
  8764.  
  8765.                <printing> is sent directly to the current event object
  8766.                and is passed the line number of the last line printed.
  8767.                After the file is printed, <printing> is sent again with
  8768.                no arguments.
  8769.  
  8770.   returns:     none required
  8771.   see also:    <compiling>, <loading>, <saving>
  8772.   example:     see the configuration file Ext.aml
  8773.  
  8774.  
  8775.   <saving>     linenumber
  8776.   ──────────────────────────────────────────────────────────────────────
  8777.   remarks:     This event is sent by the editor (A.exe) as a file is
  8778.                being saved, and can be used to show progress when saving
  8779.                a file.
  8780.  
  8781.                <saving> is sent directly to the current event object and
  8782.                is passed the line number of the last line saved. After
  8783.                the file is saved, <saving> is sent again with no
  8784.                arguments.
  8785.  
  8786.   returns:     none required
  8787.   see also:    <compiling>, <loading>, <printing>
  8788.   example:     see the configuration file Ext.aml
  8789.  
  8790.  
  8791.   <status> 
  8792.   ──────────────────────────────────────────────────────────────────────
  8793.   remarks:     This event is sent by the editor (A.exe) immediately
  8794.                before an edit window status line is updated (the 's'
  8795.                window flag must be turned on - see the 'windowflag'
  8796.                function). The return value of <status> will become the
  8797.                actual status line, allowing the status line to be
  8798.                customized.
  8799.  
  8800.                <status> is sent directly to the window event object with
  8801.                no arguments. Before calling this function, the editor
  8802.                sets the current window, current event object, and
  8803.                current buffer to those values associated with the window
  8804.                being drawn.
  8805.  
  8806.   returns:     the new user-defined status line
  8807.   see also:    <display>, <paint>, windowflag
  8808.  
  8809.